use*_*392 1 python class python-2.7
我写过以下课程,其中包括以下内容:
class abc:
def __init__(self):
self.Values = []
def add_code(self):
lastval = self.Values
print "self.Values , ", self.Values
print "lastval , ", lastval
lastval.append(1)
print "self.Values 1, ", self.Values
print "lastval 1 , ", lastval
lastval.append(2)
print "lastval 2 , ", lastval
print "self.Values 2 , ", self.Values
lastval.append(3)
print "lastval 3 , ", lastval
print "self.Values 3 , ", self.Values
lastval.append(4)
print "last val 4 ", lastval
print "self.Values 4 , ", self.Values
lastval = []
print "last value is emtpy now? , ", lastval
print "But the self.Values is not", self.Values
return lastval
Run Code Online (Sandbox Code Playgroud)
当我运行这段代码时,我看到变量lastval
附加了值,self.Values
但是当我初始化lastval
带空列表时,我仍然看到self.Values
值保持不变.可能是什么原因
你为什么不这么想?首先,您指定lastval
指向相同的列表self.Values
,因此在另一个中将看到一个突变.但是当你这么做时,lastval = []
你只需重新绑定lastval
到一个新的列表,你根本不会受到影响self.Values
.
归档时间: |
|
查看次数: |
66 次 |
最近记录: |