假设我有以下代码:
class C:
def __init__(self, data):
self.data=data #default
x=C(1)
y=C(2)
for obj in [x, y]:
obj.data+=1 # manipulate object referenced to by x or y
obj=C(999) # create a new object
print obj.data
print x.data
print y.data
输出为:
999 999 2 3
如果我理解正确,在for循环中对象是在obj.data+=1
中操作的,但是在obj=C(999)
中创建新对象时,临时别名obj
和原始的x和y不再指向同一个对象。你知道吗
所以我的问题是:如何遍历多个已知的对象,并能够为它们分配新的对象?在我的示例中,这意味着x和y将指向for循环中新创建的对象,因此输出将是:
^{2}$
实际上,您正在循环一个刚刚创建的列表。之后你就不再参考名单了。如果您在函数调用中这样做,您肯定无法在另一个范围中更改变量。你知道吗
但是,您可以更改收到的列表(作为参数,在hipotectical函数中)。尝试以下操作:
相关问题 更多 >
编程相关推荐