整理Functional Parameters位置**args,**kwargs


位置パラメータと可変長パラメータの位置

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("faker", "01012341234", "seoul", 20)
Traceback (most recent call last):
  File "main.py", line 6, in <module>
    func_param_with_var_args("faker", "01012341234", "seoul", 20)
TypeError: func_param_with_var_args() missing 1 required keyword-only argument: 'age'
可変パラメータ(*args)は順序的に最後であるべきで、上に書いたコードは*argsを真ん中に置いて、後で対応するすべてのパラメータを取得します.
TERMINALほど後のageに合う論点はないので、間違いました.
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("faker", 20, "01012341234", "seoul")
name=faker
args=('01012341234', 'seoul')
age=20
*args前回並べ替え後に解決

関数パラメータの順序

Regular positional args -> Default args -> Variable length positional args -> 
Non-default args -> Keyword-Only args with default -> Variable length kwargs**

可変キーワード引数の場所

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("showmaker", "20", mobile="01012341234", address="seoul")
  File "main.py", line 1
    def func_param_with_kwargs(name, age, **kwargs, address=0):
                                                    ^
SyntaxError: invalid syntax
エラー構文によるエラー.
可変キーワードパラメータ(**kwargs)は最後で、addressはdefault argsであるため、位置args nameとageの後にある必要があります.
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("showmaker", "20", mobile="01012341234", address="seoul")
name=showmaker
age=20
kwargs={'mobile': '01012341234'}
address=seoul

位置パラメータとキーワード可変キーワードパラメータ(variablelengthキーワードパラメータ)の位置

def mixed_params(name="showmaker", *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, "faker", "01012341234", "male" ,mobile="01012341234", address="seoul")
  File "main.py", line 1
    def mixed_params(name="아이유", *args, age, **kwargs, address):
                                                       ^
SyntaxError: invalid syntax
エラー構文によるエラー.
Pythonの構文順に次のようにリストされます.
前からposition argsのageが1つ目、default argsのname=「showmaker」、可変長のargsの*args、Non-default argsのaddress、可変長の**kwargs、最後に来ると出力が良く、エラーはありません.
def mixed_params(age, name="showmaker", *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, "faker", "01012341234", "male" ,mobile="01012341234", address="seoul")
name=faker
args=('01012341234', 'male')
age=20
kwargs={'mobile': '01012341234'}
address=seoul
完了します.
参考資料