让我们假设,以下情况:
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
我想知道自己,是否是另一种方法或我可以使用的内置方法。
谢谢。