位置パラメータ、可変パラメータ、キーワードパラメータ


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)
コード定義は次のとおりです.エラーが発生し、age値がキーワード引数であるため、エラーが発生します.

ソース:https://getkt.com/blog/python-keyword-only-arguments/
上の写真で買い付け順を確認してみます.
可変パラメータ*argsを基準に、前は位置パラメータ、後はキーワードパラメータです.
この内容から見ると.
def func_param_with_var_args(name, *args, age):
			   #위치인수        키워드인수
nameは位置パラメータ、ageはキーワードパラメータなのでエラーです.
変更された関数にエラーがない場合
func_param_with_var_args("정우성", "01012341234", "seoul", age = 20) 
def func_param_with_var_args(name, age, *args):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)

func_param_with_var_args("정우성", 20, "01012341234", "seoul")
これで修正すればいいです.
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")
他のエラーが発生したコードがあります.無効な構文構文エラーです.
上記の写真を参考にすると、*kwargsの買収は最後の位置にある必要があります.
def func_param_with_kwargs(name, age, address=0, **kwargs):
写真のように*kwargsを最後にしておけば、正常に出力できます.
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")
無効な構文エラーコードがあります.**kwargsの位置は最後です.
def mixed_params(name="아이유", *args, age, address, **kwargs):
age値がないことを示すエラーが発生しました.
def mixed_params(name="아이유", *args, age, address, **kwargs):
mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")
上のコードにはname=20、args(鄭雨盛、01012341234、男性)address=seoul、kwargs(mobile:010123412344)が含まれていますが、キーワード値ageには値がありません.
そのため、
mixed_params( "정우성", "01012341234", "male" , age = 20, mobile="01012341234", address="seoul")
元々20の因子を位置因子にした後、age=20に変更すると間違いなく出力されます.