You are here: Home > Dive Into Python > 内省の力 > オプションの引数と名前付きの引数を使う | << >> | ||||
Dive Into PythonPython from novice to pro |
Python では関数の引数はデフォルト値を持てます. その引数無しで関数が呼び出されると, 引数はデフォルト値を取ります. さらに, 名前付きの引数を使って任意の順序で引数を並べることができます. SQL Server Transact/SQL のストアドプロシージャも同じことができるので, もしあなたが SQL Server スクリプトの仙人なら, この部分を流し読みできます.
以下は, 2 つのオプション引数を持つ関数 info の例です
def info(object, spacing=10, collapse=1):
spacing と collapse はデフォルト値を持っているので, オプション引数です. object はデフォルト値を持っていないので, 必須の引数です. info が 1 つの引数で呼び出されると, spacing はデフォルト値の 10 になり collapse はデフォルト値の 1 になります. info が 2 つの引数で呼び出されると, collapse はやはりデフォルト値の 1 になります.
例えば, collapse の値は指定したいが spacing はデフォルト値にしたいとします. ほとんどの言語では運の悪いことに, 関数を 3 つの引数で呼び出す必要があるでしょう. しかし Python では, 引数は名前で指定でき, 任意の順序で並べられるのです.
info(odbchelper) info(odbchelper, 12) info(odbchelper, collapse=0) info(spacing=15, object=odbchelper)
これはかなり変に見えますが, 引数は単なる辞書だということを理解するとそうでもなくなりますThis looks totally whacked until you realize that arguments are simply a dictionary. 引数名無しの“普通の”関数呼び出しの方法は実は単なる略記で, Python は関数宣言で指定された順に引数と値を対応させています. そしてほとんどの場合, 関数は“普通の”方法で呼び出されるでしょうが, 必要なときにはいつでも融通を効かせられます.
関数を呼び出すときにしなければならないことは, 必須の引数に対しそれぞれ (なんらかの方法で) 値を指定することだけです. その作法や順序はあなた次第です. |
<< 内省の力 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
type, str, dir や他の組み込み関数を使う >> |