首页 > 编程知识 正文

python类变量和实例变量区别,类变量 实例变量

时间:2023-05-06 01:01:16 阅读:190647 作者:3285

python中类变量和实例变量详解

在了解类变量和实例变量之前,首先要知道类变量和实例变量的定义。
类变量:可在类的所有实例之间共享的值,就是指不是单独分配给每个实例,实例可以调用类变量。
实例变量:实例化之后,每个实例单独拥有的变量,类不能直接调用实例变量。

一、基础的类变量和实例变量

如下示例:num代表类变量,name代表实例变量。

class Test(object): num=0 def __init__(self,name): self.name=name Test.num += 1if __name__=="__main__": print(Test.num) t1=Test('jack') print(Test.num) t2=Test('cjdsg') print(t1.name,t1.num) print(t2.name,t2.num) 二、在类的外部添加变量

在类的外部也可以对类添加类变量或实例变量。

class Test(object): num=0 def __init__(self,name): self.name=name Test.num += 1if __name__=="__main__": t1=Test('jack') t2=Test('cjdsg') Test.class_str="添加类变量" print(Test.class_str) print(t1.class_str) print(t2.class_str) #添加实例变量 t1.age = 20 三、变量是不是随意添加?

当不对类进行限制时,可以随便对类进行添加变量,使用__slots__可以对实例变量做限制:

class Test(object): age = 1 __slots__ = ["name","num"] def __init__(self,name): self.name = name Test.age += 1if __name__=="__main__": # print(Test.num) t1=Test('jack') # print(Test.num) t2=Test('cjdsg') # print(t1.name,t1.num) # print(t2.name,t2.num) Test.class_str="添加类变量" print(Test.class_str) print(t1.class_str) print(t2.class_str) t1.age = 20 #报错,此时不能再添加实例属性 print(Test.age)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。