gpt4 book ai didi

Python - getattr 和连接

转载 作者:行者123 更新时间:2023-11-28 19:40:41 40 4
gpt4 key购买 nike

因此,在我的代码中使用 getattr 时,我发现了以下内容:

myVariable = foo.A.bar

有效...但是像这样:

B = "A"
myVariable = getattr(foo, B + ".bar")

返回一个错误,即 foo 不包含属性 A.bar。我哪里错了?谢谢!

最佳答案

因为 foo 上没有属性 A.bar。属性barA指向的对象的一部分,是foo的一个属性。你还需要

getattr(foo.A, "bar")

getattr(getattr(foo, 'A'), 'bar')

访问深层属性的通用代码是按点拆分,直到找到最后一部分(我是凭内存写的,未测试):

def getattr_deep(start, attr):
obj = start
for part in attr.split('.'):
obj = getattr(obj, part)
return obj

getattr_deep(foo, 'A.bar')

关于Python - getattr 和连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7778867/

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