python类变量和实例变量区别,简单实例变量和类变量的区别
类变量:在类中定义,由类名或对象名引用。如果被对象名引用,我们会先找出是否存在同名的实例变量。如果没有,被引用的类变量只能通过类名更新,看起来像类名。a=55。不要指望通过实例引用类变量来更新类变量。
实例变量:方法中定义的变量,一般在__init__中,只能被对象名引用。添加和更新实例变量的形式是self.a=55实例变量(静态属性)【实例名.实例变量名】。
1.实例变量是带有self的变量。构造函数下的变量。
2.实例变量对于每个实例都是唯一的,不能被彼此或被类调用、添加、修改或删除。
3.可以访问类变量。
4.如果同时存在类变量和实例变量,在执行程序时,先访问实例变量。如果实例变量存在,将使用它们;如果实例变量不存在,将使用它们。
5.实例被更改为不能修改的类变量。实际上,实例变量是在实例内存中创建的。
6.添加、修改和删除实例变量N不会影响类变量N。
7.实例A不能调用实例b的变量。
8.可以修改、添加或删除实例变量。
类变量【类名.类变量名】
1.类变量在类中,但不在类的方法中,存在于类的内存中。
2.类变量是这个类的所有实例共享的变量,但是实例对象只能被访问,不能被修改。当每个实例对象访问同一个类变量时,会得到相同的结果[实例名。类变量名]。
3.添加、修改和删除类变量N不会影响实例变量N。
4.该类无权访问实例名。
5.可以修改、添加或删除类变量。
class(object):name= name of class # class variable address= address of class def _ _ init _ _(self,name,age,Sex):self . name=name # instance variable self . age=age self . Sex=Sex def test1(self):print(self . name,Test . address)def Test2(self):pass test1=Test( test1实例名,22,男)Test2=Test(test2实例名,33,女)print (test1.name,test1.address) print你们不能互相调用,添加,修改,删除,或者被一个类#2调用,添加,修改,或删除。如果同时存在类变量和实例变量,在执行程序时,先访问实例变量。如果实例变量存在,将使用它们。如果实例变量不存在,将使用它们。类#3,实例变量 C:\ Program Files \ python 35 \ Python.exe C:/Users/王力/PycharmProjects/test/Test/Test . pytest 1实例名类地址回溯(最近一次调用last): test2实例名类地址文件 C:/Users/王力/PycharmProjects/Test/Test/Test . py ,第98行,模块类中的名称print (test.age)属性错误:类型对象 Test 没有属性 age 过程以退出代码1结束类测试(对象):name=类名age): self.name=name #实例变量self . age=agedeftest 1(self):print(self . name,Test.address)def test2(self):pass test1=test( test1实例的名称,22)print(新增test1实例变量的地址是:test1实例的地址)test1 . address= test1实例的地址 #新增实例变量print(新增test1实例变量的地址:,test1.address) print(新增类变量的地址:,test . address, \n)print Test1.age) print(将test1实例变量age22修改为11)Test1.age=11print(修改test1实例变量age:,test1.age, \ N)print(新添加的类变量age为:30)Test.age=30 #新添加的类变量print(新添加的test1实例变量age:,test1.age) print(新添加的类变量age:,Test.age, \ n) print(修改类变量address:,Test.address)print(的地址实例变量可以修改、添加、删除#2、类变量可以修改、添加、删除#3、实例变量N可以添加、修改、删除、类变量n#4、类变量N和实例变量nC:\Program Files\Python35\ python . exe C:/Users/王力/PycharmProjects/Test/Test/Test . py新增test1实例变量地址为:test1实例地址新增test1实例变量地址:test1实例地址新增类变量地址:修改前类的地址test1实例变量年龄:22修改后test1实例变量年龄:22到11修改后test1实例变量年龄:11新增类变量年龄为:30新增test1实例变量年龄:11新增类变量年龄:30、 修改前的类变量地址:修改后的类变量地址的地址为上海修改后的类变量地址:上海进程完成,退出代码为0。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。