2012-01-07 3 views
-1

return 문을 포함하지만 값을 반환하지 않는 함수가 정의되어 있습니다. 다음과 같이 내 코드는 다음과 같습니다함수 반환 값 없음

def seed(addy): 

    # urllib2 stuff is here 

    seed_result = re.search('<td>Results 1 - \d+ of (\d+)',seed_query) # searches for '<td>Results 1 - x of y', captures 'y' 
    seed_result = seed_result.group(1) # this is 'y' from above 

    # there's a call to a different function here which works properly  
    # other stuff going on here pertaining to addy but seed_result still has my string 

    # now I want to return the seed_result string... 
    return seed_result 

# ... some code outside of the seed function, then I call seed... 

seed(addy) 
print "Result is %s" % seed_result 

내가 그것을 "초기화"를 함께하고 함수의 외부 seed_result를 정의하지 않고이 작업을 시도했지만이는 결과에 영향이 미치지 최종 수익률 "에서 내 인쇄 문 결과는 "- seed_result가 없습니다. 나는 그것이 올바른지 어떻게 믿을지라도 return 문에서 괄호 안에 seed_result를 감쌌다. 팸은 차이를 만들지 않았습니다.

A는 Python 셸에서 매우 기본적인 기능이지만 유사한 기능을 설정하고 여기에서 설명한대로 호출했지만 작동합니다. 내가 무엇을 놓치고 있는지 모르겠다.

의견 및 안내에 감사드립니다.

+0

결과가 "없음"인 함수를 호출하기 위해 print 문을 수행하려고했습니다. * scratching head * –

+0

파이썬 쉘에서 작동하는 이유는 쉘이 평가 된 표현식의 결과를 출력한다는 것입니다. Jon Skeet이 말했듯이, 프로그램에서 그것을 잡으려면 변수에 할당해야합니다. –

답변

3

두이 문제를 해결하는 방법

seedresult = seed(addy) 

을 또는 당신은 세계를 사용 변수 (불량 스타일 - 어떤 댓가로든 피하십시오) :

seedresult = None 

def seed(addy): 
    global seedresult 
    ... 
+0

전역 변수 advice는 해로움이있다; 그것은 나쁜 스타일 imho보다 나빠. 귀하의 주먹 솔루션이 올바른 것입니다. –

+0

사실 저는 지금이 글에서 이것을 강조했습니다. –

+0

필자는 글로벌 사용에 대한 장단점을 확실히 볼 수 있으므로 오프라인으로 더 교육해야 할 것입니다. 여러분 모두에게 감사드립니다. –

9

이 아니므로을 사용하여 반환 값을 지정하십시오 (예 : 변수에 할당). 이 시도 : None에 의해

result = seed(addy) 
print "Result is %s" % result 
+0

아, 정말 고마워! –

0

이 발생하여 기능을 실행하는 동안 seed_result에 할당된다.

Jon Skeet이 확인했듯이 함수의 반환 값은 아무 것도하지 않습니다. 또한 아래의 문제를 해결해야합니다.

특히, addy 매개 변수를 사용하지 않고 전역 변수 seed_query을 검색하고 있습니다. 나는 당신이보고있는 행동이 그것의 결과라고 상상합니다. 의 적절한, 분명쉽게 방법은 실제로 return 에드 값 사용

첫째 :

+0

Addy는 실제로 간결함을 위해 샘플에서 잘라낸 코드에서 사용됩니다. 귀하의 의견에 감사드립니다. –

+0

@BitBucket : 자신이하는 일을 알고있는 경우 간략하게 만 잘라냅니다. – Marcin

+0

내 문제와 관련이없고 작동하고있는 코드를 잘라 냈습니다. 이것은 원래 게시물에 기록되어 있습니다. –