2012-07-17 15 views
12

Mi chiedevo se fosse possibile aggiungere un attributo a un dizionario python.Aggiunta di un attributo a un dizionario python dalla libreria standard

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' 

Esiste un modo per aggiungere rapidamente il mio attributo descrizione senza dover copiare la classe dict e sovraccaricare il costruttore. Ho pensato che sarebbe stato semplice, ma credo di essermi sbagliato.

Grazie, J

risposta

25

Proprio derivano da dict:

class MyDict(dict): 
    pass 

istanze di MyDict possono avere attributi personalizzati:

>>> d = MyDict() 
>>> d.my_attr = "whatever" 
>>> d.my_attr 
'whatever' 
Problemi correlati