2013-02-25 3 views
1

python에 처음 생겼습니다 ....이 이상한 오류와 정말로 혼동되었습니다 .... 내가 잘못하고 있다고 생각하지 않습니다.NameError : 전역 이름 'reverse'가 정의되어 있지 않습니다.

main.py 나는 역으로 재귀 호출을 할 노력하고있어

class Reverse(): 

    def __init__(self): 
    print "initialized reverse" 

    def reverse(self,var): 
    if var == "": 
     return var 
    else: 
     print var[-1] + reverse(var[:-1]) 

from methods import Reverse 

def main(): 

    b = [1,2,3,4,5,6,6,7,8,8,9,1,212,312,31,23,123455435,56,56,123] 
    a = "llaa" 

    thing = Reverse() 
    print thing.reverse(a) 


main() 

methods.py .... 친절하게 도와주세요. 감사! 클래스 Reverse에서

+3

누가 '역방향'클래스는 교육 과실에 대한 고소해야한다고 가르쳐 준 사람. –

+0

수정 사항이 롤백되었습니다. 문제가 해결되었다고 생각되면 아래 답변 중 하나 (녹색 체크 표시)에서 해결해야합니다. 질문 자체에 답변을 넣지 마십시오. –

답변

4

는, 파이썬은 당신 때문에 아무 것도 반환하지 않습니다 명시 적으로 물론 reverse

self.reverse(var[:-1]) 

을 말할 필요가 Reverse에 있도록 명시 적으로 인스턴스 메소드 나 변수를 사용할 때마다 self 말을해야합니다 그것을 변경해야합니다

return var[-1] + self.reverse(var[:-1]) 
+0

실제로 반환 var [-1] + self.reverse (var [: - 1]) – user805981

+0

그래 내 실수 – Ric

+0

하지만 우리가 인쇄 할 수 있습니까? str()을 사용할 수 있다고 생각했습니다 :/ – user805981

4

, reverse는 방법이다, 그래서 당신은 방법으로 호출해야합니다

print var[-1] + self.reverse(var[:-1]) 

참고 self을. this이 암시 다른 언어와는 달리

+0

고마워요 :) 지금 이걸 받고 있어요. TypeError : 'str'과 'NoneType'objects'를 연결할 수 없습니다. – user805981

+0

이제 얻었습니다. :) thx !!! – user805981

관련 문제