我有一个id列表,我从数据库插入中获取,发送到其他模块中的其他函数。我有一个主模块说 asd.py ,我想与其他两个模块中的函数共享一个列表 id_list : foo.py 和 bar.py 。这很简单:
def asd():
id_list = list()
# Some insertion then append id_list
foo.f1(id_list)
bar.f1(id_list)
我的问题是 id_list 是按值或引用复制的,假设这是一个非常大的列表。这种方法是“表现明智的”吗?
谢谢。
答案 0 :(得分:2)
Id_list
是通过引用复制的,尽管可变对象在这方面是一个奇怪的边缘情况。如果foo.f1
调用执行id_list = 7
,id_list
函数中的asd
副本将不会更改。但是,如果foo.f1
拨打id_list.append(9)
,则9
将在id_list
函数调用的asd
末尾显示。没有隐式复制列表。