하나 이상의 답변을 추가하고 싶습니다.
함수 호출에서 키워드 인수와 함께 잘못된 위치 순서로 위치 매개 변수를 전달하려고 할 때 발생합니다.
there is difference between parameter and argument
파이썬에서 인수 및 매개 변수에 대해 자세히 읽을 수 있습니다
def hello(a,b=1, *args):
print(a, b, *args)
hello(1, 2, 3, 4,a=12)
우리는 세 가지 매개 변수가 있기 때문에 :
a는 위치 매개 변수입니다
b = 1은 키워드 및 기본 매개 변수입니다.
* args는 가변 길이 매개 변수입니다.
먼저 우리는 위치 매개 변수로 위치 매개 변수를 할당합니다. 즉, 순서 순서대로 위치 인수에 값을 제공해야 함을 의미합니다. 그러나 호출 함수 대신 인수 1을 전달하고 키워드 인수로 취급하여 값을 제공합니다. 이제 두 가지 값이 있습니다.
하나는 위치 값입니다. a = 1
초는 키워드 값으로 a = 12입니다.
해결책
우리는 변경할 필요 hello(1, 2, 3, 4,a=12)
에 hello(1, 2, 3, 4,12)
현재는 1이고, b는 2 값을 얻을 * 인수 (가변 길이 매개 변수)를 얻을 것이다 값의 나머지 하나의 위치 값을 얻을 수 있도록
추가 정보
* args가 2,3,4를 얻고 a가 1을, b가 12를 얻으려면
우리는 이렇게 할 수 있습니다
def hello(a,*args,b=1):
pass
hello(1, 2, 3, 4,b=12)
뭔가 더 :
def hello(a,*c,b=1,**kwargs):
print(b)
print(c)
print(a)
print(kwargs)
hello(1,2,1,2,8,9,c=12)
출력 :
1
(2, 1, 2, 8, 9)
1
{'c': 12}
self
적이 암시 적보다 나은지에 대한 만족스러운 답변을 얻지 못할 것this
입니다.