传递大数据作为函数参数时python的性能

时间:2013-05-09 22:30:10

标签: python performance

假设我有两个 Python 函数,函数1 函数2

功能1 会调用功能2 ,参数是一个大数据(例如,一个包含10万个元素的字典)。

我想知道在功能1 中调用功能2 之间是否存在任何性能差异,这意味着我需要传递大数据参数,并实现函数2 直接在函数1 中,这意味着我不需要传递大数据参数。

感谢。

PS:我认为关键问题是 Python 如何通过参数,值或引用(指针)传递?

编辑:这似乎是一个混乱的问题。 How do I pass a variable by reference?是一个很好的答案。

2 个答案:

答案 0 :(得分:15)

Python按值传递对象的引用。这个术语是有争议和丑陋的,但应该没有真正的性能差异。

查看these answers以了解您可能想要的所有详细信息(希望如此)。

答案 1 :(得分:3)

python“通过”的术语是一个我不想进入的恶性辩论。但实际上在堆栈上传递的是一个引用。因此,无论您有哪种选择,都不会产生大量内存成本。