Я очень новичок в python, и я бы хотел, чтобы я мог это сделать .
нотация для доступа к значениям dict
.
Допустим, у меня такой test
:
>>> test = dict()
>>> test['name'] = 'value'
>>> print(test['name'])
value
Но я хотел бы сделать test.name
чтобы получить value
. Infact Я сделал это, переопределив метод __getattr__
в моем классе следующим образом:
class JuspayObject:
def __init__(self,response):
self.__dict__['_response'] = response
def __getattr__(self,key):
try:
return self._response[key]
except KeyError,err:
sys.stderr.write('Sorry no key matches')
и это работает! когда я делаю:
test.name // I get value.
Но проблема в том, что когда я просто печатаю test
я получаю ошибку как:
'Sorry no key matches'
Почему это происходит?