web-dev-qa-db-ja.com

タイプをどのようにエイリアスしますか?

一部の(ほとんど関数型)言語では、次のようなことができます。

type row = list(datum)

または

type row = [datum]

このようなものを構築できるように:

type row = [datum]
type table = [row]
type database = [table]

Pythonでこれを行う方法はありますか?クラスを使用してそれを行うこともできますが、Pythonにはかなりの機能的側面があるため、もっと簡単な方法で行うことができるかどうか疑問に思いました。

13
Lara

Pythonは動的に型付けされます。 ŁukaszR。の答えは、型ヒントの目的(静的分析とリンティングに使用できます)には正しいですが、厳密に言えば、これを機能させるために何かをする必要はありません必要。このようにリストを作成し、それらを変数に割り当てるだけです。

foo_table = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
bar_table = ...
foo_database = [foo_table, bar_table, ...]

型ヒントは、コードの動作を文書化するのに役立ち、静的と実行時の両方でチェックできるため、本当に便利です。しかし、何もありません強制不便な場合はそうする必要があります。

0
Kevin

Python 3.5なので、 typing モジュールを使用できます。

ドキュメントを引用すると、タイプエイリアスは、タイプをエイリアスに割り当てることによって定義されます。

Vector = List[float]

Pythonで型を強制する方法の詳細については、PEPに精通することをお勧めします: PEP48 および PEP484

Pythonはこれまで、強い型付けの代わりにダックタイピングを使用しており、3.5リリース以前は型を強制する方法が組み込まれていませんでした。

40