python 3関数パラメータ

3337 ワード

  • Python関数パラメータ
  • 一般位置パラメータ
  • デフォルトパラメータ
  • 可変パラメータ
  • キーワードパラメータ
  • 名前付きキーワードパラメータ


  • Python関数パラメータ
    通常位置パラメータ
    何も言うことはありませんが、普段はこれを使っているので、位置が変えられないことに注意してください.
    既定のパラメータ
    def enroll(name, gender, age=6, city='Beijing'):
        pass

    可変パラメータ
    可変パラメータを使用すると、0つまたは任意のパラメータを入力できます.これらの可変パラメータは、関数呼び出し時に自動的にtupleに組み込まれます.
    def calc(*numbers):
        pass
    
    nums = [1, 2, 3]
    calc(*nums)

    キーワードパラメータ
    キーワードパラメータを使用すると、0つまたは任意のパラメータ名を含むパラメータを入力できます.これらのキーワードパラメータは、関数内で自動的にdictに組み立てられます.
    この関数を呼び出すと、必須パラメータのみを入力できます.
    def person(name, age, **kw):
        print('name:', name, 'age:', age, 'other:', kw)
    
    person('Michael', 30)
    person('Adam', 45, gender='M', job='Engineer')  
    extra = {'city': 'Beijing', 'job': 'Engineer'}
    person('Jack', 24, **extra)

    キーワードパラメータの命名
    名前付きキーワードパラメータには、名前付きキーワードパラメータとして扱われる特殊な区切り記号**の後のパラメータが必要です.
    呼び出し方法は次のとおりです.
    >>> person('Jack', 24, city='Beijing', job='Engineer')
    Jack 24 Beijing Engineer
    

    関数定義に可変パラメータが既に存在する場合、後に続く名前付きキーワードパラメータには、特別な区切り記号*は必要ありません.
    def person(name, age, *args, city, job):
        print(name, age, args, city, job)

    名前付きキーワードパラメータは、位置パラメータとは異なり、パラメータ名を入力する必要があります.パラメータ名が入力されていない場合、呼び出しはエラーを報告します.
    名前付きキーワードパラメータにはデフォルト値があり、呼び出しを簡略化できます.
    def person(name, age, *, city='Beijing', job):
        print(name, age, city, job)