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