python类共享变量详解

本文以一个问题展开,探讨Python类对象添加类共享变量后实例的情况。通过分析得出,先实例化的对象在类添加共享变量后也会拥有该变量,后续实例化的对象同样会有。最后还给出代码进行验证,结果表明添加变量后,相关实例都有该变量。

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

我们以一个例子展开这个题目

问题:

python类对象A,先实例化一个A对象的实例b,接着给A对象添加一个类共享变量xxx,再实例化一个c,请问b  和c都有变量xxx吗

 

解答:

python类共享变量,是不需要实例化就可以调用的, 比如类A有一个XXX的类共享变量, 直接A.xxx就可以调用

第一步:b在实例化的时候类A中没有共享变量xxx,这个时候实例b是没有这个变量

第二步:给类A 添加一个类共享变量XXX, 添加完成后,会自动给类A 已生成的实例添加变量XXX  ,所以b实例在A添加共享变量XXX后,也会有变量XXX

第三步:最后实例化c的时候类A本来已经有类共享变量xxx,所以c实例也会有变量xxx

 

结论:实例b  c都会有变量xxx

 

写段代码验证下

#coding=utf-8

class A():

   pass

b = A()

print(dir(b),"b实例 ,共享变量添加前")

A.xxx=10

c = A()

print(dir(b),"b实例 ,共享变量添加后")

print(dir(c),"b实例 ")

代码执行结果

 

根据结果看, 可以看出添加类共享变量xxx之后  ,b  c 实例都有变量xxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值