環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Pythonのデフォルト引数で省略可能のスッキリした関数を作る

最終更新日 2019.12.04

Python にはデフォルト引数という機能があります。まずは通常の関数を考えましょう。

def show(a):
    print(a)


show('Hello')
# Hello

a は通常の引数です。

デフォルト引数

下は Python のデフォルト引数を使った関数です。

def show_d(a='World'):
    print(a)


show_d()
# World

show_d になにも入れていないのに World が出力されています。これは関数側で引数 a のデフォルトを World にしているためです。なにか入れるとどうなるでしょうか?

def show_d(a='World'):
    print(a)


show_d()  # World
show_d('OK')  # OK

関数に値を入れると、その値がデフォルトよりも優先されます。デフォルト引数を使うと、この例のように、関数を使う側で引数を省略できるというメリットがあります。

実際、Python のパッケージの多くはデフォルト引数の機能を使っています。「ユーザーからの入力は必要だが、ユーザーに負担をかけないために最低限のデフォルトは用意したい」という関数に使われています。