python类共享变量详解

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

问题:

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实例 ")

代码执行结果

 

python类共享变量详解_第1张图片

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

你可能感兴趣的:(python,web测试)