我有以下几节课
from random import randint
class A:
def __init__(self, name, value):
self.name = name
self.value = value
class B:
var_1 = A('a', randint(10, 20))
我希望从class B
,var_1
创建的每个实例都有不同的值
例如:
B().var_1.value != B().var_1.value
我知道如果我把var_1
从class variable
移到instance variable
,我会有不同的结果
必须将
var_1
更改为实例变量,以满足类B
的不同实例在var_1
中存储不同值的要求。根据定义,类变量的值在实例之间共享,这不是您想要的以下是您的程序的修改版本:
它总是打印
True
每次实例化B时,它的类变量
__value
就会增加1
,它的值存储在实例变量var_1
中。这保证了值总是不同的,与代码不同的是,代码中可能有两个实例共享相同的数字,因为值是随机生成的相关问题 更多 >
编程相关推荐