假设我有对象有关键’dlist0′,属性’row_id’我可以访问为
getattr(dlist0,'row_id')
然后它返回值
但如果我有一本字典
ddict0 = {'row_id':4, 'name':'account_balance'}
getattr(ddict0,'row_id')
这不行
我的问题是如何以同样的方式访问ddict0和dlist0
任何人都可以帮助我吗?
最佳答案 字典包含项目,因此使用__getitem __()定义的任何内容来检索键的值.
对象具有属性,因此使用__getattr __()来检索属性的值.
理论上你可以覆盖一个指向另一个,如果你需要 – 但为什么你需要?为什么不写一个辅助函数代替:
Python 2.x:
def get_value(some_thing, some_key):
if type(some_thing) in ('dict','tuple','list'):
return some_thing[some_key]
else:
return getattr(some_thing, some_key)
Python 3.x:
def get_value(some_thing, some_key):
if type(some_thing) in (dict,tuple,list):
return some_thing[some_key]
else:
return getattr(some_thing, some_key)