[解決済み] 位置引数v.s.キーワード引数
2022-11-08 10:36:22
質問
ベースは この
位置引数は、名前の後に等号 (=)とデフォルトの値です。
キーワード引数は、等号とデフォルト値を与える式が続くものです。 が続きます。
def rectangleArea(width, height):
return width * height
print rectangleArea(width=1, height=2)
質問
>私は、両方の
width
と
height
は位置引数です。では、なぜキーワード引数の構文でも呼び出せるのでしょうか?
どのように解決するのですか?
引用した文章は、2つの全く異なる事柄を混同しているようです。
-
位置引数とキーワード引数は
を呼び出します。
を関数に呼び出すことです (
Python リファレンスセクション
5.3.4 Calls
). -
デフォルト値は、関数の特徴である
の定義にあります。
と同じように
セクション
7.6 Function definitions
私は、そのコースウェアを作った人たちは 全く Python に精通していなかったのでしょう :-) したがって、あなたが提供するそのリンクは、あまり質の良いものではありません。
あなたの を呼び出す で、あなたは "キーワード引数" 機能 (引数がその位置に依存するのではなく、名前が付けられている) を使用しています。この機能がない場合、値は順序だけに基づいて名前にバインドされます。したがって、この例では、以下の 2 つの呼び出しは等価です。
def process_a_and_b(a, b):
blah_blah_blah()
process_a_and_b(1, 2)
process_a_and_b(b=2, a=1)
さらに例として、以下の定義と呼び出しを参照してください。
def fn(a, b, c=1): # a/b required, c optional.
return a * b + c
print(fn(1, 2)) # returns 3, positional and default.
print(fn(1, 2, 3)) # returns 5, positional.
print(fn(c=5, b=2, a=2)) # returns 9, named.
print(fn(b=2, a=2)) # returns 5, named and default.
print(fn(5, c=2, b=1)) # returns 7, positional and named.
print(fn(8, b=0)) # returns 1, positional, named and default.
関連
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Argparse オプションの位置引数?
-
[解決済み】Pythonの「private」メソッドは、なぜ実際にはprivateではないのですか?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] Python Empty Generator 関数
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】help()出力のスラッシュは何を意味するのか?
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法