2017-03-04 8 views
4

私はいくつかのコードを扱っていましたが、1つのメソッドが4つの値を返すときにはもっと簡単になりました。メソッドが単一の値しか返さないC++やJavaのような伝統的な言語での作業Pythonの関数/メソッドによって返される値の数の制限

Python関数から返される値の数には制限がありますか?

このようなものは楽に機能します。それには限界がありますか? Stragely十分

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

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


、私は

答えて

7

複数の値を返す場合、実際にははタプルを返します。実際:

return 1,4,2,5 

はのために短いです:

return (1,4,2,5) 

そこで質問は、タプルがを運ぶことができますどのように多くのアイテムに沸きます。

import sys 

sys.maxsize

これは、通常、32ビットシステム上の2 -1 = 2 147 483 647および2 -1 = 9 223 372 036 854 775 807である:答えを用いて得ることができます64ビットシステム奇妙なことは:2 -1(または2 -1)ではありません。つまり、技術的には32ビットマシンで4 GiBを持っていれば、リストは、メモリの半分だけを満たすことができます(もちろん、リストの要素は残りの半分を埋める責任があります)。

もちろん、要素もメモリに収まる必要があります。500万要素を格納するスペースがなければ、とにかくプログラムがクラッシュします。

+1

私はちょうどこれを実現するようになりました。ありがとう! – bholagabbar

6

Pythonの関数は、単一の値を返すこの質問への答えを見つけられませんでした:オブジェクトへの参照を。そのオブジェクトはタプル(return 1, 2, 3, 4, 5で構築されたもの)を含むどのようなタイプのものでもよい。オブジェクトのサイズは、コンピュータの使用可能なメモリによってのみ制限されます。

+0

あなたは正しいです。これは動作します。>>> x =(1、2、3) >>> a、b、c = x >>> print a、b、c – bholagabbar

関連する問題