コロン[重複]付きファンクションパラメータ
2023-09-09 06:09:50
質問
この機能に出会いました。
def splitComma(line: str):
splits = Utils.COMMA_DELIMITER.split(line)
return "{}, {}".format(splits[1], splits[2])
のように、パラメータを , で区切ったり、パラメータの中に値を設定できることは承知しています。
a=39
のようにコロンで区切っているのを見たことがありません。
line:str
. ネットで関数の定義を調べてみましたが、このようなものは見つかりませんでした。このコロンは何を意味するのでしょうか?
どのように解決するのですか?
関数のアノテーションです。関数の引数や戻り値には、任意のPython式でタグ付けすることができます。Python自身はアノテーションを(保存する以外)無視しますが、サードパーティのツールはそれらを利用することができます。
この場合、型ヒントとして意図されているのは、次のようなプログラムです。
mypy
のようなプログラムは、コードを静的に (つまり、実行せずにソースコードそのものだけを見て) 分析して
str
への引数として渡されるのは
splitComma
.
関数の戻り値の型も指定するための、より充実したアノテーションです。
def splitComma(line: str) -> str:
...
(元々、関数アノテーションは特定のセマンティクスを持つことは想定されていないことに注意してください。これは今でもそうですが、圧倒的な 仮定 アノテーションが型ヒントを提供することです)。
関連
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] メソッドと関数の違いは何ですか?
-
[解決済み] Bash関数にパラメータを渡す
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】関数の前のエクスクラメーションマークは何をするのですか?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] バブルソートの宿題
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?
-
[解決済み] 変数アノテーションとは何ですか?