工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数

Python 関数引数をマスターする

デフォルト値、キーワード、任意引数を使って、可変個の引数を受け取る関数を設計する方法を学び、よりクリーンで適応性の高いコードを書きます。

動画: Python関数引数: 位置、キーワード、デフォルト

引数

ユーザー定義関数トピックで関数定義と呼び出しを扱いました。期待されるシグネチャと合わない呼び出しはエラーを発生させます。例:

def greet(name, msg):
    """This function greets the person with the provided message."""
    print("Hello", name + ", " + msg)
greet("Monica", "Good morning!")

出力

Hello Monica, Good morning!

greet()関数は2つのパラメータを受け取ります。正しい引数数で呼べばスムーズに動作;そうでなければインタプリタが明確なメッセージでTypeErrorを出します。

>>> greet("Monica") # 引数1つのみ
TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet() # 引数なし
TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'

可変引数

Pythonは可変数の引数を受け取る柔軟な方法を提供します。以下に3つの一般的パターンを解説。

Python デフォルト引数

パラメータに代入演算子(=)でデフォルト値を与えられます。以下例ではオプションメッセージが「Good morning!」にデフォルト:

def greet(name, msg="Good morning!"):
    """
    This function greets the person with the provided message.
    If the message is not supplied, it defaults to "Good morning!".
    """
    print("Hello", name + ", " + msg)
greet("Kate")
greet("Bruce", "How do you do?")

出力

Hello Kate, Good morning!
Hello Bruce, How do you do?

この定義ではnameは必須、msgはオプション。デフォルト引数がある場合、以降のすべてのパラメータもデフォルトを持つ必要があります。そうでなければSyntaxError。例:

def greet(msg = "Good morning!", name): pass
SyntaxError: non-default argument follows default argument

Python キーワード引数

Pythonでは呼び出し側が引数を名前で指定でき、位置順の柔軟性を得られます。同じgreet()を以下のように呼べます:

# キーワード引数2つ
greet(name = "Bruce", msg = "How do you do?")
# キーワード引数2つ(順序不同)
greet(msg = "How do you do?", name = "Bruce")
# 位置引数1つ、キーワード引数1つ
greet("Bruce", msg = "How do you do?")

位置引数とキーワード引数の混在は、すべての位置引数がキーワード引数より前にある場合のみ許可;そうでなければSyntaxError。

greet(name="Bruce","How do you do?")
SyntaxError: non-keyword arg after keyword arg

Python 任意引数

設計時に引数数が不明な場合、アスタリスク(*)でタプルとして捕捉:

def greet(*names):
    """Greets each name in the supplied tuple."""
    for name in names:
        print("Hello", name)
greet("Monica", "Luke", "Steve", "John")

出力

Hello Monica
Hello Luke
Hello Steve
Hello John

関数内ではnamesは渡されたすべての引数を含むタプルになり、イテレーションや必要な処理が可能。

Python

  1. Python データ型マスター: 実践ガイド
  2. Python 演算子完全マスター: 包括的ガイド
  3. Python pass文完全マスター: 実践ガイド
  4. Python ラムダ関数: 無名関数の実践ガイド
  5. Python辞書完全ガイド:作成、操作、高度なテクニック
  6. Pythonジェネレータ:効率的イテレーションと高度なユースケース
  7. Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
  8. Pythonデコレータマスター:エキスパート技法で関数を拡張
  9. Python strip()メソッド完全ガイド:実践例付き
  10. Pythonラムダ関数をマスターする:実例とベストプラクティス
  11. Python abs()関数:数値と複素数の絶対値を計算