类变量(类对象变量)和实例对象变量详解

类变量(类对象变量)和实例对象变量详解类变量总结:第一:作为类对象的变量每次创建一个新的实例对象时,类对象变量就多一个引用指向它通过实例对象来修改类对象变量的取值,实际上是让实例对象的data指向了另外一块内存变量。实例对象是类对象的一个拷贝。第二:改变类对象的变量的值后,相应实例的值也会发生变化。类对象的变量在实例中实际上

大家好,欢迎来到IT知识分享网。类变量(类对象变量)和实例对象变量详解"

类变量总结:

第一:

  • 作为类对象的变量每次创建一个新的实例对象时,类对象变量就多一个引用指向它

  • 通过实例对象来修改类对象变量的取值,实际上是让实例对象的data指向了另外一块内存变量。实例对象是类对象的一个拷贝。

第二:

  • 改变类对象的变量的值后,相应实例的值也会发生变化。

  • 类对象的变量在实例中实际上是只读的,任何实例都无法修改类对象变量的值(test1.data=2 实际上是让实例的变量指向了另一块内存,当再生成一个新的对象时,值仍然还是1),通过实例对象.__class_.data可以修改类对象的属性值。

 

类变量和实例变量的区别在于:

  • 类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;

  • 实例变量则属对象私有,某一个对象将其值改变,不影响其他对象


python类变量被赋值

(1)类的设计里:

class里def外,通过变量名能被赋值

def里通过类对象即类名字的点运算变量名可被赋值

(2)程序里:通过类对象(类名字)的点运算类名字也可被赋值


Python实例对象变量被赋值

(1)类的设计时:def里通过self点变量名被赋值,init里和其他已被调用的方法函数里都可以

(2)程序里:通过实例对象的点运算变量名可被赋值

 
# 类和实例 变量被赋值

class test(object):
    new = "new 变化前" # 通过变量名能被赋值
    old = "old 变化前"

    def __init__(self): 
        self.num = "num 变化前"
        self.age = "age 变化前"

    def freedom(self):
        test.new = "new def 里被赋值"
        self.num = "num def 里被赋值"

t = test()

test.old = "old 程序里被赋值"
t.age = "num 程序里被赋值"

print(t.age) # num 程序里被赋值
print(test.old) # old 程序里被赋值

t.freedom()
print(test.new) # new def 里被赋值
print(t.num) # num def 里被赋值

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/34331.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信