2014-04-28 2 views
0

저는 객체 지향 프로그래밍에 새로운 것이므로 내 프로그램에 약간의 도움을 줄 수 있습니다. 나는 계속 varible 변수를 정의하지 않고 오류를 겪고 있으며, 내가 뭘 잘못하고 있는지 모른다. 또한, 왜 누군가가 당신이 수업에서 "자기"옹호가 필요한지에 대한 통찰력을 제공 할 수 있다면, 실제로 그것이하는 일은 훌륭 할 것입니다. 어떤 도움을 주셔서 감사합니다.클래스로 정의되지 않은 전역 변수

CODE :

def main(): 

    ford=Car(2008,mustang) 
    count=0 

    for count in range(5): 
     ford.accelerate() 
     count+=1 
     print("The speed is : "+ford.get_speed()) 

    for count in range(5): 
     ford.brake() 
     count-=1 
     print("The speed is : "+ford.get_speed()) 

class Car: 

    def __Car__(self,model,carMake): 
     self.__yearModel=model 
     self.__make=carMake 
     self.__speed=0 

    def set_Model(self, model): 
     self.__yearModel=model 

    def set_Make(self,carMake): 
     self.__make=carMake 

    def get_Model(self): 
     return self.__yearModel 

    def get_speed(self): 
     return self.__speed 

    def get_make(self): 
     return self.__make 

    def accelerate(self): 
     return speed+5 

    def brake(self): 
     return speed-5 
+0

이 당신에게 관심의 대상이 될 수 있습니다 : : 다음과 같이 방법으로 마지막을 변경해야 http://stackoverflow.com/questions/23082509/how-is-the-self-argument-magically-passed -to-instance-methods/23082576 –

답변

1

나는 오류가

def accelerate(self): 
     return self.__speed+5 

def brake(self): 
    return self.__speed-5 

으로 변경해야이 줄

def accelerate(self): 
    return speed+5 

def brake(self): 
    return speed-5 

에서오고있다 전역 변수를 정의되지 않은 추측 것 왜냐하면 자아는 무엇을 의미합니까? Car 클래스의 새 인스턴스를 만들 때마다 self는 클래스 내부의 메서드가 속한 것을 알 수있게합니다. 그것은 본질적으로 사용하기 쉽도록 각 기능에 자동으로 공급되는 자동차의 인스턴스입니다.

이렇게 생각하십시오. 자동차는 얼마나 많은 양의 가스가 있는지와 같은 자체에 대해 알아야합니다. 그러나 그것이 자신의 가스 탱크를 찾지 못한다면 그 사실을 알 수 없습니까? 그게 바로 자기입니다. 자동차 인스턴스에 대한 액세스 지점입니다.

0

클래스 속성 __speed을 참조하지 않는 것과 둘 다 속성 값을 업데이트하지 않는다는 문제점이 있습니다.

def accelerate(self): 
    self.__speed += 5 
    return self.__speed 

def brake(self): 
    self.__speed -= 5 
    return self.__speed