所以我一直在阅读 getattr,并且想知道相当于什么
example = val1.val2.val3(item)
会的。 所以我知道你必须使用嵌套的 getattr 来实现多级属性
example = getattr(getattr(val1, "val2"), "val3")
但是我如何表示传入的对象?
最佳答案
或者您可以使用标准库中的一个简洁函数 operator.attrgetter 。这里有一个关于如何使用它的小例子。
from operator import attrgetter
from collections import namedtuple
# Define some objects
Foo = namedtuple('Foo', 'attr')
Bar = namedtuple('Bar', 'subattr1')
instance = Foo(attr=Bar('this_is_my_value'))
retriever = attrgetter('attr.subattr1')
result = retriever(instance)
print(result)
执行此操作将为您提供
this_is_my_value
关于python getattr 多个级别,也传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26663320/