我对Python非常陌生,希望能够使用.
符号来访问dict
中的值。
比如说我有类似这样的test
:
>>> test = dict()
>>> test['name'] = 'value'
>>> print(test['name'])
value
但是我希望我能够执行test.name
来获取value
。实际上,我通过在我的类中重写__getattr__
方法来实现:
但我希望我能够执行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'
为什么会发生这种情况?
cgi.py
。 - Aya