Sono molto nuovo per Python e vorrei poter fare notazione .
per accedere all'oggetto dict
in python.Come usare la notazione a punti per dict in python?
Diciamo che ho test
come questo:
>>>test = dict()
>>> test['name'] = 'value'
>>> print(test['name'])
value
Ma vorrei poter fare test.name
per ottenere value
. Infatti ho fatto l'override del metodo di __getattr__
nella mia classe in questo modo:
class JuspayObject:
def __init__(self,response):
self.__dict__['_response'] = response
def __getattr__(self,key):
try:
val = self._response[key]
return val
except KeyError,err:
sys.stderr.write('Sorry no key matches')
e questo funziona! quando lo faccio:
test.name //I get value.
ma il problema è quando ho appena stampo test
solo ottengo l'errore come:
'Sorry no key matches'
perché questo accada !!!
Grazie in anticipo.
È necessario chiamare super-classe __getattr__ quando si richiede un attributo che non è nel dettato. –
@DavidHeffernan Una classe vecchio stile come l'esempio dell'OP ha anche una superclasse? – Aya
@Aya Nessuna idea. In caso contrario, utilizzare una nuova classe di stile. Chi usa ancora le classi di vecchio stile comunque? –