51

関数が int または float の数値のリストを取ることができるように指定するにはどうすればよいですか?

次のように Union を使用して新しいタイプを作成してみました。

num = Union[int, float]

def quick_sort(arr: List[num]) -> List[num]:
    ...

ただし、mypy はこれが気に入らなかった:

 quickSortLomutoFirst.py:32: error: Argument 1 to "quickSortOuter" has
 incompatible type List[int]; expected List[Union[int, float]]  

int と float を含む Type はありますか?

4

2 に答える 2

29

タイプヒントを提案したPEP 484から:

ユーザーがインポート番号を書いてから使用するなどを要求するのではなくnumbers.Float、この PEP はほぼ同じくらい効果的な簡単なショートカットを提案します: 引数が type を持つと注釈されている場合float、 type の引数intは受け入れられます...

気にしないでくださいUnion。に固執するだけSequence[float]です。

List編集:との違いを理解してくれた Michael に感謝しSequenceます。

于 2017-05-13T19:14:51.793 に答える