2013-10-08 3 views
1

python 입문. 이 질문에 대한 답을 2 일 동안 알아 내지 못했습니다 .. 도움을 주시면 고맙겠습니다.여러 함수 인수 - learnpython.org

"foo"및 "bar"기능을 다양한 변수 (3 개 이상)를 수신 할 수 있도록 입력하십시오. "foo"함수는 수신 된 추가 인수의 양을 반환해야합니다. "bar"는 "magicnumber"라는 키워드를 가진 인수가 7 일 경우 "True"를 반환하고 그렇지 않으면 False를 반환해야합니다.

# edit the functions prototype and implementation 
def foo(a, b, c): 
    pass 

def bar(a, b, c): 
    pass 


# test code 
if foo(1,2,3,4) == 1: 
    print "Good." 
if foo(1,2,3,4,5) == 2: 
    print "Better." 
if bar(1,2,3,magicnumber = 6) == False: 
    print "Great." 
if bar(1,2,3,magicnumber = 7) == True: 
    print "Awesome!" 

나는 .. 어떤 부분 코드는 문제의 이해 ** kwargs로 모든 것을 가지고, 좋은 것 같아요

+4

[왜 당신이 튜토리얼에서 뭔가 구글을 사용하여 귀찮게 것 (http://docs.python.org/2/ tutorial/controlflow.html # more-on-defining-functions) –

+0

kwargs가 파이썬 튜토리얼에 있어야한다는 것을 알고 있었지만 찾을 수 있으면 저주했다. 내 Google-fu가 약합니다. – Talvalin

답변

5

\ 난 당신이 누군가가 당신에게 코드를 제공하려는 경우 확실하지 않다하지만 이후 당신이 배우려고한다고 말했을 때, 나는 지금 당장 당신을 올바른 방향으로 가리킬 것입니다. 파이썬의 키워드 인수를 사용하고 싶다.

Thisthis 시작하는 것이 좋습니다.

[편집] 여기

코드입니다 :

def foo(a, b, c, *args): 
    return len(args) 

def bar(a, b, c, **kwargs): 
    if kwargs["magicnumber"] == 7: 
     return True 
    return False 
+0

도움이되는 정보를 검색 할 때 감사합니다. 정확히 어떻게 작동하는지 이해하는 데 문제가 있다고 생각합니다. –

+0

@NickKobishev, 일부 코드를 포함하도록 답변을 업데이트했습니다. 학습 중이 시니 이해가 안되면 질문하십시오. – Joseph

+0

감사합니다. * args와 ** kwargs의 차이점에 대한 설명을 보았습니다. 그러나 *를 사용해야 할 때 실제로 이해하지 못하는 것 같습니다. –