Найти - Пользователи
Полная версия: инициализация параметров класса по умолчанию
Начало » Python для новичков » инициализация параметров класса по умолчанию
1
DonVulture
Пояснить пожалуйста инициализацию параметров по умолчанию.
class TGraphicsList(object):
"""набор графиков"""
def __init__(self,Lister=[]):
self.grfList=Lister

def Add(self,currgrf):
"""добавление графика"""
self.grfList.append(currgrf)



grl=TGraphicsList()
grfobj=(1,2,3)
grl.Add(grfobj)

grl2=TGraphicsList()

print grl2.grfList
Код выведет , а по моим ожиданиям должен вывести пустой список
regall
Дело в том, что в __init__ в переменной Lister создается пустой список - . Так как у нас все работает по ссылке, то при следующем создании инстанса все будет ссылаться на один и тот же объект-список в памяти (потому что атрибуту grfList вы присваиваете ССЫЛКУ на список). В вашем случае можно в ините, например, написать
...
self.grfList = Lister[:]
...
DonVulture
Спасибо
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