Nit*_*tak -3 python python-2.7 python-3.x
下面给出了这个课程,这将打印20_20.现在直到第5行代码相同,我不希望T.a当我改变值时改变值T1.a.怎么解决?
class Test:
def __init__(self, val):
self.a = val
T = Test(10)
T1 = T
T1.a = 20
print T.a + '__' + T1.a
Run Code Online (Sandbox Code Playgroud)
预期产量为10_20.
小智 5
在行中6. T1 = T,您告诉python对T被调用的对象进行新的引用T1.
当我改变T1.a的值时,我不希望Ta的值改变
由于T和T1指向同一个对象,因此无法按照设置方式完成此操作.您可以通过注意在python解释器中T is T1求值来看到这一点True.
看起来好像你想要实例化2个Test对象,每个对象都有自己的a属性,这样改变一个对象就不会影响另一个对象.