通过for循环调用类的属性会导致

2024-10-02 22:28:18 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码

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))

有人能解释为什么吗


Tags: 代码inselffornamesdefaxac
1条回答
网友
1楼 · 发布于 2024-10-02 22:28:18

您的第一个示例获取attac属性,该属性不存在。变量不用于解析属性名称

调用getattr时,将变量传递给能够动态读取属性的Python函数。因为变量是这里的参数,所以它被解析了

相关问题 更多 >