2012-09-23 2 views
1

나는 python을 처음 사용합니다.예외를주는 __init__ 메소드

class Temp(): 

    def __init__(self): 
     print 'hello world!' 

    def main(): 
     temp = Temp() 
     print 'here i am' 

    if __name__ == '__main__': 
     main() 

나는이 오류가 무엇입니까 :

Traceback (most recent call last): 
File "test.py", line 1, in <module> 
    class Temp(): 
File "test.py", line 11, in Temp 
    main() 
File "test.py", line 7, in main 
    temp = Temp() 

왜 내가이 오류를 얻고을 나는 다음과 같은 프로그램을 실행하려고?

+0

당신이 뭘 하려는지? main을 Temp의 클래스 메쏘드로 정의하고 객체를 초기화하는 이유는 무엇입니까? – karthikr

답변

4

들여 쓰기 main() 그리고 그 아래에있는 것이 바로 지금은 Temp 독립 실행 형 기능이 아닙니다. 근본적으로 Temp 인스턴스가없는 메소드를 호출하려고합니다.

들여 쓰기는 어떻게 파이썬이 메소드, 클래스, 루프에 있는지 판단합니다. 여기를 참조하십시오 :

편집 :

class Temp(): 
    def __init__(self): 
     # this method is in Temp 
     pass 

    def prettyPrint(self): 
     # this method is also in temp 
     print("I'm in temp") 

def prettyPrint(self): 
    #this is not in Temp (notice the indentation change) 
    print("I'm not in temp") 

if __name__ == "__main__": 
    #this is not in temp either 
    t = Temp() 
    t.prettyPrint() 
    prettyPrint(None) 
+0

알았어요. 감사! –

관련 문제