gpt4 book ai didi

Python getattr() 成员或函数?

转载 作者:太空狗 更新时间:2023-10-30 01:55:23 26 4
gpt4 key购买 nike

我正在尝试使用 Python 的 getattr() 从我无法控制的各种 API 获得的大量对象中提取数据。我的想法是遍历一个异类对象列表,并尝试对它们使用 getattr(),直到我提取出我需要的所有内容。

所以我正在做其中之一:

if hasattr(o, required_field):
value = getattr(o, required_field)
result.append([required_field, value])
print 'found field', field, 'for value', value

我的问题是有时我正在处理的对象有 object.data() 和 sometiems object.data 来提取东西。有时这些对象实际上是生成器。

所以偶尔我会得到这样的东西:

found field ValueOfRisk for value
CellBM:<Instrument:/limbo/WLA_YdgjTdK1XA2qOlm8cQ==>.ValueOfRisk>

问题:有没有一种方法可以让我说“当数据成员是数据成员时访问它,或者当它是函数时​​调用函数”来从这些东西中获取值(value)?看起来这对 Python 来说应该很容易,但我找不到它。

最佳答案

if hasattr(value, '__call__'):
value = value()

备用:

if callable(value):
value = value()

还有:

import types
if isinstance(value, types.GeneratorType):
# Handle generator case

关于Python getattr() 成员或函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11103685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com