返回“大对象”需要花费更多时间而不是在Python中返回None吗?

时间:2014-09-30 00:44:39

标签: python return-value

返回某些内容与无之间是否存在显着的处理时间差异?

以下是示例代码

案例1

def function_1():

    foo = SOME_HUGE_LIST_OR_STRING

    return foo

案例2

def function_1():

    foo = SOME_HUGE_LIST_OR_STRING

    return None

提前致谢,

1 个答案:

答案 0 :(得分:1)

Python中的对象是通过引用(the long version is here)传递或返回的,而不是按值传递,因此return - 任何对象(包括None)基本上是等效的。

现在,创建“一些巨大的列表或字符串”以便返回它可能比简单地引用单例值None要花费更长的时间才能返回它...

编辑:我相信标准CPython实现中可能存在None的特殊套管/优化(其实现为NoneType的单例),但这种用法的差异很可能可忽略的。

相关问题