Уведомления

Группа в Telegram: @pythonsu

#1 Май 16, 2011 20:48:48

n1kolyan
От:
Зарегистрирован: 2011-05-16
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема со словарем

Добрый вечер, недавно начал изучать питон и наткнулся на небольшую проблему со словарями

 
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
словарь почему то получился статичным.
как сделать чтобы словарь в каждом экземпляре класса был уникальным.
Заранее спасибо.



Офлайн

#2 Май 16, 2011 21:08:08

m.meehalkoff
От:
Зарегистрирован: 2011-01-21
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема со словарем

Я думаю нужно создавать словарь внутри функции __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)

Офлайн

#3 Май 16, 2011 21:12:36

n1kolyan
От:
Зарегистрирован: 2011-05-16
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема со словарем

Большое спасибо, вопрос закрыт, только еще хотелось бы узнать почему такое произошло, и где еще могут встретиться подобные подводные камни ?



Офлайн

#4 Май 17, 2011 04:53:10

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Проблема со словарем

n1kolyan
Большое спасибо, вопрос закрыт, только еще хотелось бы узнать почему такое произошло, и где еще могут встретиться подобные подводные камни ?
тут в 1 случае словарь принадлежит классу, во втором - экземпляру класса.

Офлайн

#5 Май 17, 2011 05:01:45

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема со словарем

Это не “подводные камни”, а основы языка :)

Язык лучше всего учить с хорошей книгой, например - Марк Лутц “Изучаем Python”. Если не хочешь покупать бумажную книгу, в инете можно скачать PDF-версию.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version