2013-04-06 4 views
0

안녕 나는 게임을 만드는 과정에있어에서 값을 변경하지 지향하고 나는이 아래에있는 내 코드의 일부입니다 걸림돌 공격했습니다 아마 정말파이썬 객체는 init 함수

class player(object): 
    def __init__(self): 
     self.x = 10 
     self.y = 10 
     self.amount = 5 
     self.answer = 0 

    def move(self): 
     self.x += self.amount 
     self.y += self.amount 


while True: 
    player().move() 
    print player().x 

그것을 기본적인 실수는 무엇이든 move() 함수는 self.x 나 self.y의 값을 변경하는 것처럼 보이지 않습니다. 누군가 올바른 방향으로 나를 찌를 수 있습니다! 감사합니다, 나는 아마 아주 기본적인 뭔가가있어 실현, 나는 OO과 많은 경험이없는

당신이 무엇을 의미

답변

4
player().move() # create a player and move it 
print player().x # create another player and print its x 

은 다음과 같습니다

aplayer = player() 
aplayer.move() 
print aplayer.x 

 

추신 : 일반적인 연습은 클래스 이름을 대문자로 사용하는 것입니다 :

class Player(object): 
    def __init__(self): 
     self.x = 10 
     self.y = 10 
     self.amount = 5 
     self.answer = 0 

    def move(self): 
     self.x += self.amount 
     self.y += self.amount 


player = Player() 
player.move() 
print player.x 

이렇게하면 betw를 쉽게 구별 할 수 있습니다. 클래스와 객체.

+0

알겠습니다. 어떻게 알 수 있습니까? 어떻게 수정합니까? – user2137452

+0

우수한 환호 : D – user2137452

0

확인. 무엇을 다른 사람이 말했다 것은 당신이 조지과 같은 변수로 "플레이어"를 설정해야한다는 것입니다, 다음

그렇게
class Player(object): 
    def __init__(self): 
     self.x = 10 
     self.y = 10 
     self.amount = 5 
     self.answer = 0 

    def move(self): 
     self.x += self.amount 
     self.y += self.amount 

While True: 
    george = Player() 
    george.move() 
    print george.x 

작동합니다 그() George.move를 호출합니다. "조지"를 원하는대로 변경할 수 있습니다. 일관성이 있는지 확인하십시오.