廖先生についてPython(13):関数3-関数のパラメータを学ぶ
2725 ワード
続:第(11)節本文のすべての引用は廖雪峰先生のウェブサイトから来た.転載は出典を説明してください.デフォルトパラメータdef power(x,n=2):......上記の「n=2」は、パラメータnが入力されていないときにデフォルトの値です.注意:必須パラメータは前で、デフォルトパラメータは後で、そうでなければPythonの解釈器は とエラーを報告します.可変パラメータ--入力されたパラメータの個数は可変である.例えばa 2+b 2+c^2+を計算すると... 従来の方法def calc(numbers):......numbersはlistまたはtupleである.呼び出すときはlistまたはtuple:calc([1,2,3]) を組み立てる必要があります.可変パラメータdef calc(*numbers):......関数内部ではパラメータnumbersがtupleを受信するため、関数コードは完全に変わらない.ただし、この関数を呼び出すと、0個のパラメータを含む任意のパラメータを入力できます.
もちろんlistまたはtupleが定義されている場合は、>>nums=[1,2,3]>>calc(nums[0],nums[1],nums[2]) 上のこのような書き方は煩雑で、Pythonはlistまたはtupleの前に
キーワードパラメータキーワードパラメータを使用すると、関数内で自動的にdictに組み込まれた0つまたは任意のパラメータ名を含むパラメータを入力できます.def person(name, age, **kw): print('name:', name, 'age:', age, 'other:', kw)//kw==keyword
キーワードパラメータは何に使いますか?関数の機能を拡張できます.たとえば、person関数では、nameとageの2つのパラメータを受信できることを保証しますが、呼び出し者がより多くのパラメータを提供したい場合は、受信できます.ユーザー名と年齢が必須である以外はオプションで、キーワードパラメータを利用してこの関数を定義すれば登録のニーズを満たすことができます.
可変パラメータと同様に、dictを組み立ててから、キーワードパラメータに変換して送信することもできます.
4.パラメータの組み合わせ
Pythonで関数を定義するには、必須パラメータ、デフォルトパラメータ、可変パラメータ、キーワードパラメータ、名前付きキーワードパラメータの5つのパラメータを組み合わせて使用できます.ただし、パラメータ定義の順序は、必須パラメータ、デフォルトパラメータ、可変パラメータ、ネーミングキーパラメータ、キーワードパラメータである必要があります.
任意の関数については、パラメータがどのように定義されているかにかかわらずfunc(*args,*kw)のような形式で呼び出すことができます.
可変パラメータとキーワードパラメータを定義する構文に注意してください:*argsは可変パラメータであり、argsはtupleを受信します.**kwはキーワードパラメータであり、kwはdictを受信する.
- end -
*
号を直接追加することを許可し、listまたはtupleの要素を可変パラメータに変えて伝達する:>>nums=[1,2,3]>>calc(*nums)*nums
はnums
というlistのすべての要素を可変パラメータとして伝達することを示している.この書き方はかなり役に立ち、よく見られます.>>>person('Michael', 30)
name: Michael age: 30 other: {}
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
キーワードパラメータは何に使いますか?関数の機能を拡張できます.たとえば、person関数では、nameとageの2つのパラメータを受信できることを保証しますが、呼び出し者がより多くのパラメータを提供したい場合は、受信できます.ユーザー名と年齢が必須である以外はオプションで、キーワードパラメータを利用してこの関数を定義すれば登録のニーズを満たすことができます.
可変パラメータと同様に、dictを組み立ててから、キーワードパラメータに変換して送信することもできます.
d
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, city=extra['city'], job=extra['job'])
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
:
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
**extra
は、extra
というdictのすべてのkey-valueをキーワードパラメータで関数の**kw
パラメータに入力することを示し、kw
はdictを取得し、kw
で得られたdictはextraのコピーであり、kw
の変更は関数外のextraに影響しないことに注意する.4.パラメータの組み合わせ
Pythonで関数を定義するには、必須パラメータ、デフォルトパラメータ、可変パラメータ、キーワードパラメータ、名前付きキーワードパラメータの5つのパラメータを組み合わせて使用できます.ただし、パラメータ定義の順序は、必須パラメータ、デフォルトパラメータ、可変パラメータ、ネーミングキーパラメータ、キーワードパラメータである必要があります.
任意の関数については、パラメータがどのように定義されているかにかかわらずfunc(*args,*kw)のような形式で呼び出すことができます.
可変パラメータとキーワードパラメータを定義する構文に注意してください:*argsは可変パラメータであり、argsはtupleを受信します.**kwはキーワードパラメータであり、kwはdictを受信する.
- end -