2011-01-20 4 views
3

이 필요하지만 나는 문제가 발생하는 문제에 직면파이썬 : 형식 오류가 : 정확히 내가 현재 내 파이썬 연습을 singpath.com을 사용하고 1 개 인수 (2 주어진)

예상되는 결과는 다음과 같습니다

>>>CurryPuff(3) 
3.60 
>>>CurryPuff(3,'Fish') 
4.2 

이 내가 시도 뭔가 :

def CurryPuff(x,typePuff): 

    if(typePuff==''): 

     return x*1.2 

    if(typePuff=='Fish'): 

     return x*1.4 

그러나 그것은 나에게이 오류 제공 :

TypeError: CurryPuff() takes exactly 2 arguments (1 given) 

나는 이것에 대한 인터넷 검색을 시도했지만 사용하는 키워드는 무엇인지 잘 모르므로 여기에서 도움을 얻을 수 있습니다.

감사합니다.

답변

16

CurryPuff()처럼 2를 예상하면 인수가 1 인 함수를 호출 할 수 없습니다.

def CurryPuff(x, typePuff=None): 
    if typePuff is None: 
     # and so on... 

당신은 어떤 인수에 대한 값으로이 작업을 수행 할 수 있습니다 그러나 인수를 전달하지 않으면 사용되는 기본 인수를 정의 할 수 있습니다. 디폴트 값이 정의 된 경우에만 인수를 생략 할 수 있습니다.

+2

+1이지만, 키워드 인수 (기본값이있는 인수) 앞에 위치 인수 (기본값이없는 인수)를 넣어야한다고 추가 할 수 있습니다. 'def CurryPuff (typePuff = None, x) :'는 유효하지 않습니다. –

+0

@Tim 나는 이것을 알지 못했다. 약간의 지식에 감사드립니다. –

관련 문제