我对 python 非常陌生,我希望我可以使用 .表示法来访问 dict的值。
假设我有这样的 test:
>>> test = dict()
>>> test['name'] = 'value'
>>> print(test['name'])
value
但我希望我能做 test.name得到 value。事实上,我是通过像下面这样重写类中的 __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'
为什么会这样?