Kao početnik u Pythonu ne trebaš žuriti s klasama - dosta se stvari može napraviti korištenjem funkcija i ugrađenih tipova (list, dictionary).
* class je ključna riječ i obavezna je prilikom definiranja klase.
* self nije ključna riječ, nego je konvencija za ime prvog parametra metode. Prilikom poziva metode na instanci objekta Python će automatski postaviti taj objekt kao prvi parametar - pogledaj definiciju i poziv metode paint u donjem kodu.
* Ako klasa ima metodu koja se zove __init__ Python će je automatski izvršiti pri stvaranju novog objekta - kao konstruktor u drugim objektnim jezicima. Ova metoda je zgodna za inicijaliziranje atributa. Tvoj kod ima problem što nakon kreiranje nove instance atribut name ne postoji dok se objektu ne pozove metoda createAuto.
* Pročitaj PEP-8, pogotovu dio u kojem su navedene preporuke za imenovanje funkcija, klasa i varijabli.
class Auto:
def __init__(self, model, color):
self.model = model
self.color = color
def display(self):
print 'This car is', self.color, self.model
def paint(self, new_color):
self.color = new_color
car_1 = Auto('WV', 'pink')
car_1.display()
car_2 = Auto('Mercedes', 'white')
car_2.display()
car_2.paint('black')
car_2.display()