[解決済み] Pythonの関数定義における->の意味とは?
2022-03-18 21:18:08
質問
を見ていて、最近面白いことに気づきました。 Python 3.3文法仕様 :
funcdef: 'def' NAME parameters ['->' test] ':' suite
オプションの 'arrow' ブロックは Python 2 では存在せず、Python 3 ではその意味に関する情報を見つけられませんでした。これは正しいPythonであり、インタープリタに受け入れられることがわかりました。
def f(x) -> 123:
return x
これは何か前提条件となる構文なのかもしれないと思ったが。
-
をテストすることができません。
x
はまだ未定義であるため、ここで説明します。 -
矢印の後に何を入れても(例.
2 < 1
のように、関数の動作に影響を与えません。
この構文スタイルに詳しい方、説明していただけませんか?
どのように解決するのですか?
それは 関数アノテーション .
もっと詳しく言うと、Python 2.xにはdocstringsというものがあり、様々な種類のオブジェクトにメタデータ文字列を付けることができるようになっています。これは驚くほど便利なので、Python 3ではこの機能を拡張して、関数にパラメータと戻り値を記述したメタデータを添付できるようにしました。
特に先入観のない使用例ですが、PEPではいくつかの使用例を提案しています。アノテーションを確認したり、引数を正しい型に強制するデコレーターを簡単に書くことができます。もうひとつは、docstringにエンコードする代わりに、パラメータ固有のドキュメントを許可することです。
関連
-
PythonによるLeNetネットワークモデルの学習と予測
-
python string splicing.join()とsplitting.split()の説明
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python関数の高度な応用を解説
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].