python类的相关问题

class ikunhanbaodian:
    zhuozi=10
    def __init__(self):
        print("欢迎光临")
keren1=ikunhanbaodian()
keren1.zhuozi=0

这个程序里面的keren1.zhuozi=.到底干了啥?
如果说他还是类变量zhuozi,但是把zhuozi=10去掉他还能运行。
如果说他是新建了一个实例变量,但是格式又不对,应该是self.zhuozi且在内部创建。
keren1.zhuozi=0他到底干了啥(三连问号)

这是调用对象给他的属性赋值,代码注释如下,有帮助的话采纳一下哦!

# 定义一个类
class ikunhanbaodian:
    zhuozi=10 # 静态属性
    def __init__(self):   #方法
        print("欢迎光临")

# 实例化这个类,即创建对象
keren1=ikunhanbaodian()
# 将对象的zhuozi属性值改为0
keren1.zhuozi=0

zhuozi=10
这是类里的静态变量
你可以直接写ikunhanbaodian.zhuozi去访问它
当然用实例去访问也没问题
zhuozi=10这只是变量的初值
如果你不写,后续执行keren1.zhuozi=0的时候就不是在修改值,而是重新定义一个名叫zhuozi的成员变量(因为是用实例访问而不是用类名访问,所以定义的是成员变量不是静态变量)

我的理解是在类的外面添加了一个同名的公有属性keren1.zhuozi=0
这样子语法是可以执行代码也不会出错,但一般情况下应该都不会这么做,因为会使得程序难理解难维护

这是赋值一个类变量,没有的话就等于新建,有的话就等于修改