gpt4 book ai didi

python - 类变量无法对实例变量执行属性查找

转载 作者:行者123 更新时间:2023-11-30 22:05:28 24 4
gpt4 key购买 nike

我在玩和学习Python OOP的广阔主题时观察到,类变量可以通过创建的类实例访问,但该类无法调用该类定义的实例变量

class abc():
height=180
def __init__(self,name):
self.age=12
self.name=name


ee=abc("Muhammad")
print(ee.height)
print(abc.height)

输出

180
180

但是如果我尝试直接通过类名访问类变量,则会出现错误。

ee=abc("Muhammad")
print(ee.height)
print(abc.age)

输出

AttributeError: class abc has no attribute 'age'

所以,我观察到了这一点,并认为与初学者分享 python OOP 的深度会有所帮助。请有人能对此有所启发。

最佳答案

您没有使用 age = 12 设置属性在__init__ 。您所做的一切确实定义了一个局部变量,当 __init__ 时该变量将被垃圾收集。完成了。

您必须使用abc.age = 12实际在类 abc 上设置属性
(或type(self).age = 12)。

我假设这是一个教育示例,否则在类(class)中为看似建模的人设置年龄并不是很有用。

每次都重新设置类属性__init__被调用也是多余的。

关于python - 类变量无法对实例变量执行属性查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53013793/

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