2014-10-03 2 views
3

은 사용 다음 코드 조각을 고려 functools.partial() :"형식 오류가 : 인수에 대해 여러 값을 얻었다"functools.partial를 적용한 후()

import functools 

def add(a, b): 
    return a + b 

add_10 = functools.partial(add, a=10) 
add_10(4) 

나는 그것을 실행하면, 나는 다음과 같은 오류 있어요 :

을 내가 끝에서 두 번째 줄에 위치 인수 키워드 인수를 변경하면
Traceback (most recent call last): 
File "test.py", line 7, in <module> 
    add_10(4) 
TypeError: add() got multiple values for argument 'a' 

, 그것을 전달합니다

add_10 = functools.partial(add, 10) 
,

첫 번째 경우에는 왜 통과하지 않습니까? 나는 파이썬 3.4를 사용하고있다.

답변

5
import functools 

def add(a, b): 
    return a + b 

add_10 = functools.partial(add, b=10) 

add_10(4) 

이 코드가 작동합니다. 기본값을 가진 함수 인수는 끝에 있어야합니다. 따라서 a = 10 대신 b = 10

관련 문제