2017-06-16 22 views
0

引数が満たすべきインタフェースをPythonでアノテートする方法はありますか? IEの場合、最初の引数としてpushとpopをサポートするコンテナが必要な場合は、これに注釈を付けますか?Pythonでインターフェース注釈を行う標準的な方法はありますか?

+2

[読む必要があります](https://stackoverflow.com/questions/8059649/how-to-document-a-duck-type) – CoryKramer

+0

ドキュメントストリングの慣習があるかどうか尋ねていますか?これらは、[PEP 257](https://www.python.org/dev/peps/pep-0257/) –

+0

で定義されています。@CoryKramer私は、過去にインターフェイスが部分的に満たされていて、あなたはゴミを取得する、私はタイプの注釈またはそれらのようなものがここで安全を許すかどうか疑問に思います。機能的な世界から来て、プログラマーが彼の頭の中の型システムを期待するのは不合理なようだ。 – Carbon

答えて

1

Pythonの関数は、あなたが見るべきである署名を持つことができます。

def greeting(name: str) -> str: 
    return 'Hello, {}'.format(name) 

python2では、あなたが# type: (str) -> strを使用することができますのpython3では、これは言語の一部です。

ビルトインとは別に、このアノテーションに独自のタイプ(制限あり)を使用できます。

ruamel.yamlライブラリを確認するには、Any宣言(それはまったく制限されない)をより限定的な型に置き換えてゆっくりと有用性を高めてください。

関連する問題