python getattr 多个级别,也传递值

标签 python

所以我一直在阅读 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/

相关文章:

python - 使用动态 form_class 更新 View

Python 秒表示例 - 同时启动所有类实例?

python - 写入 3,795,790,711 唯一键 :value pairs to redis

python - 大学计算机科学: Parsing out integer values into a list from a string

python - 现在无法在 macOS Big Sur 上使用 setup.py 安装

python - 在 linux openSUSE 13.1 中安装 supervisor 时出错

python - 我怎样才能做到这一点,但骰子的数量是可变的?

python - 使用 PyPDF2 从 PDF 中删除 PDF 图层

python - 如何使用 python 更新 MongoDB 文档?

python - 两部分 : Why doesn't this code call the function I want, 我可以在不为其创建单独函数的情况下执行此操作吗?