打印Python中的值传递?

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属性,这样改变一个对象就不会影响另一个对象.