Positional vs Keyword Arguments
Related article:
- 関数
- 関数を引数に渡す
- Asterisk in Python
Transcript.Functions
関数を呼び出すときに使用できる 2 種類の引数について説明します。キーワード引数) です。
位置引数
組み込みの print
関数を呼び出すとき、任意の数の引数を位置引数として渡すことができます。これらの引数の順序は重要です: 最初の引数は最初に出力され、最後の引数は最後に出力されます。
Keyword arguments (a.k.a. named arguments)
print
関数は、キーワード引数としていくつかの引数を受け入れることがあります。
print
関数はオプションのsep
引数(デフォルトはスペース文字)を受け付けます。
>>> print(2, 1, 3, 4, sep=' ')2 1 3 4>>> print(2, 1, 3, 4)2 1 3 4>>> print(2, 1, 3, 4, sep='-')2-1-3-4>>> print(2, 1, 3, 4, sep=', ')2, 1, 3, 4
そのsep
引数は、print
に与えられた各位置引数の間に出力されるべき区切り文字を定義します。
また、オプションとしてend
キーワード引数も用意されています。end
引数のデフォルトは改行文字です。
>>> print(2, 1, 3, 4, sep=', ', end='\n')2, 1, 3, 4
しかし、最後に感嘆符を出力するために、end
引数に (改行の前に) 感嘆符を入れることができます。
>>> print(2, 1, 3, 4, sep=', ', end='!!\n')2, 1, 3, 4!!
The order of keyword arguments doesn’t matter
The order of the print
関数の sep
と end
引数は実際には重要ではありません。
>>> print(2, 1, 3, 4, end='!!\n', sep=', ')2, 1, 3, 4!!
これらは位置引数ではないので、順序は重要ではありません: これらは名前付き引数です。
位置引数はその値の間にカンマがあります。
Using keyword arguments instead of positional arguments
Keyword arguments is just useful for functions that accept any number of positional arguments (like print
)ではない、キーワード引数は、位置引数の任意の数を受け入れる関数 (print
のような) のために便利です。Python のほぼすべての関数にキーワード引数を渡すことができます。
例えば、組み込みの sum
関数は最初の引数を受け取ります:
>>> sum()10
しかし、それはまた、デフォルトでゼロである 2 番目の引数を受け取ります。
>>> sum(, 0)10
その第2引数を1
に変更すると、これが返される合計の開始値になります。
start=1
が sum
で動作するのは、start
がその引数の名前だからです。sum
関数のドキュメントでは、start
と呼ばれる 2 番目の引数が書かれています。
>>> help(sum)Help on built-in function sum in module builtins:sum(iterable, /, start=0) Return the sum of a 'start' value (default: 0) plus an iterable of numbers When the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types.
つまり、名前付き引数(別名、キーワード引数)で作業している場合は、引数の名前が実際に重要です!一方、位置引数の場合は、それが重要である位置なのです。
Summary
Python で関数を呼び出すとき、2 つの異なるタイプの引数を渡すことができます:
- positional arguments
- named arguments (a.k.a..). キーワード引数)
名前付き引数は、関数呼び出しの中での位置だけではその用途がわからないようなオブジェクトに名前を付けたので、コードをもう少し説明的にすることができます。 このページは Python Morsels という Python のスキルアップのためのオンラインサービスの一部です。
学ぶための最良の方法は、実際にやってみることです。 Pythonの場合、それはPythonのコードを書くことを意味します。 もしあなたが毎週Pythonのスキルを向上させたいのであれば、Python Morselsを試してみてください。
Python Morselsのトピックページは無料で、最初の1ヶ月分のエクササイズも無料です。 お支払いの詳細を入力する必要はありません。
Pythonの他の多くのトピックの解説は、下記からサインアップしてください。
サインアップすることにより、プライバシーポリシーに同意したものとみなされます。