Я пытаюсь написать объект-оболочку вокруг объекта словаря в Python, как такPython по умолчанию/необязательные переменные
class ScoredList():
def __init__(self,dct={}):
self.dct = dct
list = ScoredList()
list.dct.update({1,2})
list2 = ScoredList()
list.dct.update({"hello","world"})
print list1.dct, list2.dct # they are the same but should not be!
Похоже, я не могу создать новый объект ScoredList, или, вернее, каждый забитый список объект имеет один и тот же базовый словарь. Почему это?
class ScoredList2():
def __init__(self):
self.dct = {}
Приведенный выше код для ScoredList2 отлично работает. Но я хочу знать, как правильно перегрузить конструктор в python.
обязательной ссылки: http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument. – DSM
'{" hello "," world "}' не является словарем, '{1,2}' тоже. – Tadeck