[解決済み] 関数にオプションのパラメータを渡す方法はありますか?
2022-06-08 04:11:35
質問
Pythonで、関数を呼び出す際にオプションのパラメータを渡し、関数定義の中で "オプションのパラメータが渡された場合のみ" に基づくいくつかのコードを持つ方法はありますか?
どのように解決するのですか?
この Python 2 のドキュメントです。 7.6. 関数定義 は、呼び出し元がオプションのパラメータを提供したかどうかを検出するためのいくつかの方法を提供します。
まず、特別な正式なパラメータ構文である
*
. 関数定義の形式パラメータの前に1つの
*
がある場合、Pythonはそのパラメータに、先行する形式パラメータにマッチしない任意の位置パラメータを(タプルとして)代入します。もし関数定義が、形式パラメータの前に
**
がある場合、Pythonはそのパラメータに、(dictとして)先行する形式パラメータにマッチしないキーワードパラメータを代入します。関数の実装は、これらのパラメータの内容をチェックし、必要な種類の "オプションのパラメータ" があるかどうかを確認することができます。
例えば、次のような関数があります。
opt_fun
という関数があり、これは二つの位置パラメータをとります。
x1
と
x2
という名前の別のキーワードパラメータを探し、quot;optional" とします。
>>> def opt_fun(x1, x2, *positional_parameters, **keyword_parameters):
... if ('optional' in keyword_parameters):
... print 'optional parameter found, it is ', keyword_parameters['optional']
... else:
... print 'no optional parameter, sorry'
...
>>> opt_fun(1, 2)
no optional parameter, sorry
>>> opt_fun(1,2, optional="yes")
optional parameter found, it is yes
>>> opt_fun(1,2, another="yes")
no optional parameter, sorry
次に、デフォルトのパラメータ値として、次のような何らかの値を与えることができます。
None
のような、呼び出し元が決して使用しないような値を指定することができます。パラメータがこのデフォルト値を持つ場合、呼び出し元がパラメータを指定しなかったことがわかります。パラメータがデフォルト値でない場合、呼び出し元が指定したことが分かります。
関連
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] 変数を参照渡しする方法を教えてください。
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] 文字列が数値(float)であるかどうかを確認するにはどうすればよいですか?
-
[解決済み] 最近の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の学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Python入門 openを使ったファイルの読み書きの方法
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】NameError: 名前 'self' が定義されていません。