class Myclass:
a=10;
objects=[]
for i in range(5):
objects.append(Myclass())
print(id(objects))
def alter_obj(objects): #传给函数参数的是变量objects的浅复制
print('id in function:',id(objects))
for obj in objects:
obj.a=20
alter_obj(objects)
结果:
140235198598720
id in function: 140235198598720
如果希望传给函数参数的是一个变量objects的深复制:
import copy
class Myclass:
a=10;
objects=[]
for i in range(5):
objects.append(Myclass())
print(id(objects))
def alter_obj(objects):
print('id in function:',id(objects))
for obj in objects:
obj.a=20
alter_obj(copy.deepcopy(objects))
结果:
139937707909632
id in function: 139937708104512