Python 関数から複数の値を返す別の方法
プログラミングにおける一般的な問題は、関数から複数の値を返す必要があることです。この問題に対する解決策はいくつかありますが、それぞれに長所と短所があります。
タプル
タプルは、複数の値を特定の順序に保ちながら返す簡単なオプションです。 。ただし、返される値の数が増えると、タプルは扱いにくくなり、エラーが発生しやすくなります。
辞書
辞書は、より構造化されたアプローチを提供し、個々の値を投影することができます。キーを使用して値を設定します。これらは、C の名前付きタプルと同様のソリューションを提供します。
Classes
特殊なクラスを作成すると、カスタム構造を返すことができます。この方法には柔軟性がありますが、クラスの定義にさらに多くの定型コードが含まれる可能性があります。 Python の __slots__ 属性は、__dict__ オーバーヘッドを排除することでスペースを最適化できます。
データ クラス (Python 3.7 )
データ クラスは、特殊な機能が組み込まれたクラスを作成する簡潔な方法を提供します。メソッドと型アノテーションにより、戻り値の作成が簡素化されます。
リスト
Bill the Lizard はリストの使用を提案していますが、この方法は混合型要素の可能性と重要な要素が欠落しているため、一般には好まれません。 Python のタプルと比較した利点。
名前付きタプル (推奨)メソッド)
簡潔でよく整理されたアプローチには、Python の名前付きタプル (2.6 で追加) を強くお勧めします。これらは、タプルの順序と容易さを、名前によって値にアクセスする機能と組み合わせます。
名前付きタプルの使用例:
import collections Point = collections.namedtuple('Point', ['x', 'y']) p = Point(1, y=2) print(p.x, p.y) # Output: 1 2
Python を使用した名前付きタプル3のタイピングライブラリ:
from typing import NamedTuple class Employee(NamedTuple): name: str id: int = 3 # default value employee = Employee('Guido') print(employee.id) # Output: 3
最終的に、複数の値を返すための最適な方法は、特定の要件とコード構成によって異なります。名前付きタプルは、シンプルさと構造化されたアクセスのバランスを提供し、この一般的な問題に対する一般的で汎用性の高いソリューションとなっています。
以上がPython 関数から複数の値を効率的に返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。