2017-03-27 7 views
0

내가 내 프로그램을 실행할 때 나는이해 파이썬은

class Game: 
    def __init__(self, x, y, z): 
     self.x = x 
     self.y = y 
     self.z = z 

이 모든 것을 아래에 내가

def main(): 
    g = Game() 
    while True: 
     g.__init__(5,10,4) 

을 보유하고있는 게임이라는 클래스가 __init__ 나는 다음과 같은 오류 얻을 :

TypeError: __init__() takes exactly 4 arguments (1 given) 

나는 __init__에 대한 이해가 부족해야 가정,하지만 난 왜 이해가 안 돼요 일어난다. 초기화가 매개 변수를 사용할 수 있습니까?

+0

당신은 거의 결코 명시 적으로 init''호출해야합니다. 'Game()'을 할 때 * 암시 적으로 * 호출됩니다. ''__init__''에 하나의 인자 ('self') 만 전달하기 때문에 그 라인에서 오는 에러입니다 만,'x','y','z'도 필요합니다. –

+0

때로는'super() .__ init __()' – abccd

답변

1

당신은 메인 프로그램에서 명시 적으로 __init__를 호출하지 않는다; 당신이 유형 게임의 인스턴스 (객체)를 생성 할 때 자동으로 호출된다. 당신이 필요로하는 것은 매우 간단하다 :

def main(): 
    g = Game(5, 10, 4) 

네 개의 인수 자기와 세 개의 정수; 오류가 당신이 그것을 단지 자기을 준 원래의 형성에서 비롯됩니다.

또한, 마지막 두 줄이 객체를 초기화하는 무한 루프했을 있습니다. 이렇게하면 초기화 작업을 완료하지 않으므로 게임이 매우 지루할 수 있습니다. :-)