我遇到了__getattr__内置的,并想知道何时使用它.我很难从文档
http://docs.python.org/reference/datamodel.html#中考虑实际使用.什么是如何在代码中使用和有用的实际例子?
一个例子是使用带有字典的对象表示法.例如,考虑字典
myDict = {'value': 1}
Run Code Online (Sandbox Code Playgroud)
通常在Python中,可以访问'value'变量
myDict['value']
Run Code Online (Sandbox Code Playgroud)
它将1在Python解释器上打印.但是,人们可能希望使用myDict.value符号.这可以通过使用以下类来实现:
class DictAsMember(dict):
def __getattr__(self, name):
value = self[name]
if isinstance(value, dict):
value = DictAsMember(value)
return value
my_dict = DictAsMember()
my_dict['property'] = {'sub_property': 1}
print(my_dict.property.sub_property) # 1 will be printed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1702 次 |
| 最近记录: |