Web2py - 在模块之间共享列表

时间:2015-10-22 13:13:19

标签: python performance web2py

我有一个id列表,我从数据库插入中获取,发送到其他模块中的其他函数。我有一个主模块说 asd.py ,我想与其他两个模块中的函数共享一个列表 id_list foo.py bar.py 。这很简单:

在asd.py中

def asd():
    id_list = list()
    # Some insertion then append id_list
    foo.f1(id_list)
    bar.f1(id_list)

我的问题是 id_list 是按值或引用复制的,假设这是一个非常大的列表。这种方法是“表现明智的”吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

Id_list是通过引用复制的,尽管可变对象在这方面是一个奇怪的边缘情况。如果foo.f1调用执行id_list = 7id_list函数中的asd副本将不会更改。但是,如果foo.f1拨打id_list.append(9),则9将在id_list函数调用的asd末尾显示。没有隐式复制列表。