我对 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'
为什么会这样?