2012-07-17 12 views
12

Zastanawiam się, czy można dodać attibute do słownika Pythona.Dodawanie atrybutu do słownika Pythona ze standardowej biblioteki

class myclass(): 
    def __init__(): 
    self.mydict = {} #initialize a regular dict 
    self.mydict.newattribute = "A description of what this dictionary will hold" 
    >>>AttributeError: 'dict' object has no attribute 'newattribute' 
    setattr(self.mydict,"attribute","A description of what this dictionary will hold" 
    >>>AttributeError: 'dict' object has no attribute 'newattribute' 

Czy jest jednak tak, aby szybko dodać atrybut mojego opisu bez konieczności kopiowania klasy Dict i przeciążania konstruktora. Myślałem, że to będzie proste, ale myślę, że się myliłem.

Dzięki J

Odpowiedz

25

Wystarczy pochodzić z dict:

class MyDict(dict): 
    pass 

Przypadki MyDict może mieć niestandardowe atrybuty:

>>> d = MyDict() 
>>> d.my_attr = "whatever" 
>>> d.my_attr 
'whatever' 
Powiązane problemy