python中类的用法(类属性、类变量)

本文探讨了Python中类的属性和变量,强调类属性(类变量)只能由类本身调用,不能直接通过对象修改。当对象试图修改类变量时,实际上是创建了一个同名的实例属性,而不会影响类的变量。类也无法访问对象实例的属性,但对象可以访问类属性。

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

类属性、类变量:只能由类调用的属性

如下 代码中的total就是类class的变量,在这个类下声明的对象只能调用这个变量,不能修改,只有类才有资格修改类的变量。但若类的对象尝试去对total做修改,就相当于只是给自己增添了一个新的属性total,并不能改变类的变量total的值。如果类class调用total修改其值,那么对象再次访问变量total ,访问到的将是修改后的值。但如果此对象本来就有一个total属性,那么修改类的total属性后,对象的total属性的值并没有改变,还是其原来的值。

另外,类无法访问对象实例的属性,但对象可以访问类属性(类变量)。

以上解释在以下代码中也可体会:

class People(object):
    #类变量可以由所有的对象访问,但是对象只能访问,不能修改
    #可以用来做资源共享
    total=0
    name = 'python 8期'
    #初始化函数,添加对象属性
    def __init__(self,name,age,school):
        #给对象属性赋值
        self.name=name
        self.age=age
        self.school=school
        #只能使用类去修改
        People.total+=1
#p1和p2是两个不同的对象,这两个对象各自的信息时不可以共享的
p1=People('张三',21,'**大学')
print(p1.total)
p2=People('钊冉',22,'***大学')
print(p2.total)
#类无法访问对象实例的属性
# print(People.name)
#对象可以访问类属性/类变量
# print(p1.total)
#对象没有办法修改类的属性值
# 给p1添加了一个total属性
# p1.total=100
# print(People.total)

#如果需要修改类的变量的值,只能由类调用修改
# People.total=1000
# print(People.total)
#对象访问到的是修改之后的值
# print(p1.total)



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值