假设以下情况:
class foo(object):
def __init__(self, ref=None):
self.ref = ref
def __str__(self):
return "I'm foolish"
f = foo()
f.ref = foo()
f.ref.ref = foo()
f.ref.ref.ref = foo()
尝试打印(getattr(f,“ ref.ref.ref”))
引发'foo'对象没有属性'ref.ref.ref'。
因此,我通过以下功能解决了该问题:
def get_ref(ref_attr):
for attr in ref_attr.split('.'):
print(getattr(f, attr))
get_ref("ref.ref.ref") retruns the expected result:
I'm foolish
I'm foolish
I'm foolish
我想知道自己,这是另一种方法还是我可以使用的内置方法。
aluckdog
相关分类