Форум сайта python.su
Добрый вечер, недавно начал изучать питон и наткнулся на небольшую проблему со словарями
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
Офлайн
Я думаю нужно создавать словарь внутри функции __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}
Отредактировано (Май 16, 2011 21:10:43)
Офлайн
Большое спасибо, вопрос закрыт, только еще хотелось бы узнать почему такое произошло, и где еще могут встретиться подобные подводные камни ?
Офлайн
n1kolyanтут в 1 случае словарь принадлежит классу, во втором - экземпляру класса.
Большое спасибо, вопрос закрыт, только еще хотелось бы узнать почему такое произошло, и где еще могут встретиться подобные подводные камни ?
Офлайн
Это не “подводные камни”, а основы языка :)
Язык лучше всего учить с хорошей книгой, например - Марк Лутц “Изучаем Python”. Если не хочешь покупать бумажную книгу, в инете можно скачать PDF-версию.
Офлайн