python的类变量、实例变量和单个实例变量

本文详细解析了Python中类变量、实例变量和单个实例变量的概念与区别,通过实例演示了它们的使用场景及如何正确操作。强调了类变量在所有实例中的共享特性,实例变量在初始化方法中的定义,以及单个实例变量的独特作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python类的变量有类变量、实例变量和单个实例变量,“单个实例变量”是我的说法,更为规范的说法我还不能确切地知道。学习编程语言真是“一入编程深似海”,总是有那么多曲曲折折的坑,每一个坑都要花点时间去解决。那些编书的人,往往不知道读者到底哪儿不懂。一个细节可能就让读者琢磨半天。所以自己趁着是初学者,把自己遇到的坑,感觉到模糊的地方都先写下来。比如在使用类的时候,对于类变量和实例变量的区别就开始就不清楚。为什么还要有单个实例变量,也不明白。今天基本上搞明白了,但或许还有不对的地方。

1.类变量在所有实例当中高高在上,可以用类名进行操作,但不可以用实例进行操作。

2.实例变量要在init里定义。

3.单个实例变量在类外面定义,只针对单个实例有效,对其它实例无效。

还是看例子吧

#类变量、对象变量、具体实例变量的区分

class Animal():
    "This is Animal species class."
    species="Animal"#类的静态变量,所有对象共享。
    count=0
    def __init__(self,name):
        self.name=name#z在init定义的是对象变量。
        self.attri=[]#并以“self."打头为对象变量,所有对象共享。
        Animal.count+=1#统计类的实例个数
    def add_attributes(self,attri):#为attri赋值的方法
        if(type(attri)==list):
            self.attri.extend(attri)
        else:
            self.attri.append(attri)

cat=Animal("Tom")
rat=Animal("Micky")
dog=Animal("Pluto")

li=["小型","哺乳动物","聪明"]
cat.add_attributes(li)
print(cat.attri)

rat.add_attributes(li)
rat.location="house"#专门对rat定义的变量,不能用于cat和dog等实例。
rat.shuyao="dishasi"

ratStr=",".join(rat.attri)#列表转字符串
print("和老鼠相关的属性有:")
print("包括:%s,"%ratStr+rat.location+","+rat.shuyao)#关于格式化的理解还需要提高

print("类的实例个数是:%s"%Animal.count)#利用类调用类变量
print("类的实例个数是:%s"%dog.count)#利用实例调用类变量,下面都是。
Animal.count+=1
print("类的实例个数是:%s"%cat.count)
dog.count+=1#此句无法对类变量操作
print("类的实例个数是:%s"%rat.count)

输出为:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值