Найти - Пользователи
Полная версия: Проблема со словарем
Начало » Python для новичков » Проблема со словарем
1
n1kolyan
Добрый вечер, недавно начал изучать питон и наткнулся на небольшую проблему со словарями
 
class Userarr():
Arr={}
s=0
def __init__(self,x,y):
self.Arr[x]=y


a= Userarr(5,6)
b = Userarr(0,1)
a.s=5
b.s=6

print a.Arr , a.s
print b.Arr , b.s
В результате получаем
 
{0: 1, 5: 6} 5
{0: 1, 5: 6} 6
словарь почему то получился статичным.
как сделать чтобы словарь в каждом экземпляре класса был уникальным.
Заранее спасибо.
m.meehalkoff
Я думаю нужно создавать словарь внутри функции __init__
class Userarr:
def __init__(self,x,y):
self.Arr = {}
self.Arr[x] = y

a = Userarr(1,5)
b = Userarr(6,3)

print a.Arr
print b.Arr
Результат:
{1:5}
{6:3}
n1kolyan
Большое спасибо, вопрос закрыт, только еще хотелось бы узнать почему такое произошло, и где еще могут встретиться подобные подводные камни ?
o7412369815963
n1kolyan
Большое спасибо, вопрос закрыт, только еще хотелось бы узнать почему такое произошло, и где еще могут встретиться подобные подводные камни ?
тут в 1 случае словарь принадлежит классу, во втором - экземпляру класса.
dimabest
Это не “подводные камни”, а основы языка :)

Язык лучше всего учить с хорошей книгой, например - Марк Лутц “Изучаем Python”. Если не хочешь покупать бумажную книгу, в инете можно скачать PDF-версию.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB