python类的类变量与实例变量

静态变量
类是一个抽象,对象是一个实体,指具体的某一个。
在类中的静态变量。与普通的成员变量不同,静态类成员与具体的对象没有关系,而是只属于定义他们的类。
静态变量(类变量)属于类,不属于 某个具体的对象
静态变量(类变量)属于类,不属于 某个具体的对象
静态变量(类变量)属于类,不属于 某个具体的对象

全局变量定义在整个程序所有函数外头定义的变量
静态变量(类变量)定义在class中,但不在任何一个函数中
实例变量在类中的函数中,带有前缀self
实例变量在类中的函数中,带有前缀self
实例变量在类中的函数中,带有前缀self
局部变量在类中的函数中,没有任何前缀,只能在它的函数中使用

class test:
    cls = "222" #类变量
    a = "aaa"   #类变量
    def output(self):
        self.b = "9999"
        print(self.a) #此时会先查找是否有实例变量a,如果没有就会类中查找是否有类变量a
        print(id(test.a))  ####
        print(id(self.a))  ####
        self.a = 3  #赋值,创建一个实例变量a
        print(self.a) #此时输出实例变量3
        print(test.a) #此时输出类变量aaa
        print(id(test.a)) ####
        print(id(self.a)) ####
        self.cls = "555" #实例变量
        put = "00" #局部变量,只能在output函数中使用
        print(test.cls)
        print(self.cls)

t = test()
t.output()
print(t.cls)#用对象名访问实例变量
print(t.b)  #用对象名访问实例变量
print(test.cls) #用类名访问类变量

输出

aaa
2430409712392
2430409712392
3
aaa
2430409712392
140732695045008
222
555
555
9999
222

在类的函数中self后如果跟的类变量名,则会先在在实例变量中查找是否有,如果没有,就去类变量中查找,并且类变量的值只能通过类名为前缀时才能改
在类的函数中self后如果跟的类变量名,则会先在在实例变量中查找是否有,如果没有,就去类变量中查找,并且类变量的值只能通过类名为前缀时才能改
在类的函数中self后如果跟的类变量名,则会先在在实例变量中查找是否有,如果没有,就去类变量中查找,并且类变量的值只能通过类名为前缀时才能改

在对象中用对象名为前缀访问实例变量,用类名为前缀访问类变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值