[Python]Function Parameters(2)
variable length arguments
パラメータ名に*を付けると、入力値はすべてtupleにマージされるため、複数の入力値が受信されます.
def example(num1, num2, *args)
print(num1)
print(num2)
print(args)
example(1, 6, 3, 4, 5)
上記の関数が呼び出されると、num 1およびnum 2はそれぞれ1および6を渡す.*argsという名前のパラメータはtupleの形で3,4,5を伝達する.
上記のコードを実行するとエラーが発生します.
「鄭雨盛」は名前で伝えた.
残りの3つのパラメータが*argsに渡された場合、ageに割り当てられたパラメータはありません.
すなわち,どこからどこまで*argsに渡さなければならないパラメータであるかを特定できないため,エラーが発生した.
この問題を解決するには、1)*argsをパラメータの最後に配置します.
20をKeword論点に変えればいい
1) 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")
#age의 위치가 바뀌었으니 20의 위치도 옮겨준다.
2)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)
上記のように、修正コードは次の結果を出力します.name=정우성
args=('01012341234', 'seoul')
age=20
以上のコードでもエラーが発生します.
パラメータとパラメータの順序を変更します.
20にキーワードを指定すると、エラーを解決できます.
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" , age = 20, mobile="01012341234", address="seoul")
#출력
name=정우성
args=('01012341234', 'male')
age=20
kwargs={'mobile': '01012341234'}
address=seoul
Reference
この問題について([Python]Function Parameters(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@ulr0xb/PythonFunction-Parameters2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol