Python基礎文法-02
Python
Function Parameters
関数の変数を決定するにはいくつかのルールがあります.
义齿
4番のルールを考えてみましょう.なぜ関数を定義するときにdefault value parameter(デフォルトパラメータ)をnon-deffault value parameter(デフォルト値を指定しないパラメータ、通常変数)の前に定義できないのですか?
デフォルトパラメータは省略可能であり、関数を使用する場合、通常パラメータかデフォルトパラメータかを区別できません.
Functional Parametersの使用例1
def func_param_with_var_args(name, *args, age):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
func_param_with_var_args("정우성", "01012341234", "seoul", 20)
上記の例を実行します.Traceback (most recent call last):
File "main.py", line 5, in
func param with var args(「鄭雨盛」,「01012341234」,「seoul」,20)
TypeError: func_param_with_var_args() missing 1 required keyword-only argument: 'age'
エラーコードの内容からageに対応する値はありません.これは5番ルールの内容です.
変数名でageの値を入力します.
def func_param_with_var_args(name, *args, age):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
func_param_with_var_args("정우성", "01012341234", "seoul", age=20)
再稼働します.鄭雨盛
args=('01012341234', 'seoul')
age=20
出力が正しいことを確認できます.
Functional Parametersの使用例2
def func_param_with_kwargs(name, age, **kwargs, address=0):
print("name=",end=""), print(name)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")
上記の例を実行しましょう.File "main.py", line 1
def func_param_with_kwargs(name, age, **kwargs, address=0):
SyntaxError: invalid syntax
関数の変数をチェックすると、**変数が3番目に位置していることがわかります.これは3番ルールの内容に相当します.
**kwargsを修正します.
def func_param_with_kwargs(name, age, address=0, **kwargs):
print("name=",end=""), print(name)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")
再稼働します.鄭雨盛
age=20
kwargs={'mobile': '01012341234'}
address=seoul
出力が正しいことを確認できます.
Functional Parametersの使用例3
def mixed_params(name="아이유", *args, age, **kwargs, address):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")
上記の例を実行しましょう.File "main.py", line 1
def mixed params(name=“iu”,*args,age,**kwargs,address):
SyntaxError: invalid syntax
**変数は4番目にあります.これは3番ルールの内容に相当します.
**kwargsを修正します.
def mixed_params(name="아이유", *args, age, address, **kwargs):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")
再稼働します.Traceback (most recent call last):
File "main.py", line 7, in
mixed params(20,「鄭雨盛」,「01012341234」,「mal」,mobile=「01012341234」,address=「seoul」)
TypeError: mixed_params() missing 1 required keyword-only argument: 'age'
「age」変数についての内容はないそうです.これは5番に相当する内容です.
解決策は2つある.関数のage変数をnameの前に移動するか、関数の使用時にageを直接呼び出して割り当てます.
まず「age」変数を移動します。
def mixed_params(age, name="아이유", *args, address, **kwargs):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")
再稼働します.鄭雨盛
args=('01012341234', 'male')
age=20
kwargs={'mobile': '01012341234'}
address=seoul
出力が正しいことを確認できます.
今回は直接「age」を呼び出して割り当てます。
def mixed_params(name="아이유", *args, age, address, **kwargs):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
mixed_params(age = 20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")
再稼働します.File "main.py", line 7
mixed params(age=20,「鄭雨盛」,「01012341234」,「mal」,mobile=「01012341234」,address=「seoul」)
SyntaxError: positional argument follows keyword argument
「age」変数はデフォルトパラメータの前に使用され、エラーが発生しました.これは4番ルールの内容です.
「address」変数を後ろに移動します.
def mixed_params(name="아이유", *args, age, address, **kwargs):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
mixed_params("정우성", "01012341234", "male" ,mobile="01012341234", address="seoul", age = 20)
再稼働します.鄭雨盛
args=('01012341234', 'male')
age=20
kwargs={'mobile': '01012341234'}
address=seoul
出力が正しいことを確認できます.
Reference
この問題について(Python基礎文法-02), 我々は、より多くの情報をここで見つけました https://velog.io/@deonii/파이썬-기초-문법-02テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol