限制Python函数/方法返回的值的数量

时间:2017-03-04 18:59:06

标签: python function return-value

我正在处理一些代码,并意识到当单个方法返回4个值时,事情变得容易多了。使用C ++和Java等传统语言,其中方法只返回一个值,我开始怀疑

  

Python函数返回的值的数量是否有限制?

像这样的东西毫不费力地工作。它有限制吗?

def hello():
    return 1, 2, 3, 4, 5

a, b, c, d, e = hello()
print a, b, c, d, e


很幸运的是,我没有找到这个问题的任何答案

2 个答案:

答案 0 :(得分:8)

如果您返回多个值,则实际上返回一个元组。事实上:

return 1,4,2,5

简称:

return (1,4,2,5)

所以问题归结为一个元组可以携带多少项。答案可以通过以下方式获得:

import sys

sys.maxsize

32位系统通常为2 31 -1 = 2 147 483 647,而2 63 -1 = 9 223 372 036 854 775 807 64位系统。奇怪的是:它不是2 32 -1(或2 64 -1)所以这意味着从技术上讲,如果你有一台32位机器,那么你的有4个GiB,列表本身只能填满一半的内存(当然列表中的元素可以负责填补剩下的一半)。

当然元素也需要适合内存:如果你没有空间来存储500万个元素,你的程序无论如何都会崩溃。

答案 1 :(得分:6)

Python函数只返回一个值:对象的引用。该对象可以是任何类型,包括元组(这是用return 1, 2, 3, 4, 5构造的)。对象的大小仅受计算机可用内存的限制。