下面的代码
class attsClass():
def __init__(self,aw,ax,ay,az):
self.aw = aw
self.ax = ax
self.ay = ay
self.az = az
ac = attsClass('W','X','Y','Z')
ac.ax
在这里我会得到结果“X”,但是如果我像下面那样调用我们会得到一个错误
att_names = ['aw','ax','ay','az']
for att in att_names:
print(ac.att)
这里我不能访问属性
有了这个我才能访问它
att_names = ['ax','ay','az']
for att in att_names:
print(att, getattr(ac, att))
谁能解释一下为什么?
最佳答案
您的第一个示例获取 ac
的 att
属性,该属性不存在。变量不用于解析属性名称。
当您调用 getattr
时,您会将变量传递给能够动态读取属性的 Python 函数。由于变量在这里是一个参数,所以它被解决了。
关于python - for循环调用类属性报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58859842/