整理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
完了します.参考資料
Reference
この問題について(整理Functional Parameters位置**args,**kwargs), 我々は、より多くの情報をここで見つけました https://velog.io/@rosewoodowon/Function-Parametersテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol