Crée le fichier `03-classes.md` :

```python
class Vehicle:
  speed = 0

  def __init__(self, model):
    self.model = model

  def __str__(self):
    return self.model + ' (speed: %d mph)' % (self.speed)

  def increase_spead(self, speed_increment):
    self.speed += speed_increment

car = Vehicle('Land Rover')
car.increase_spead(80)
print(car)
```

On utilise le même mot-clé `class` qu'en Java pour déclarer une classe. Logiquement, pas de `{}`,  mais à nouveau l'indentation pour délimiter la classe : arrivé à la ligne qui instancie un `Vehicle`, l'interpréteur sait que le corps de la classe est terminé, car on est revenu au même niveau d'indentation que celui où on l'a déclarée.

Plusieurs choses là encore :

- Les propriétés d'instance (ici `speed`) sont déclarées les premières, juste en leur attribuant une valeur initiale.
- Le constructeur de n'importe quelle classe est la méthode `__init__()`.
- Note que celui-ci, **ainsi que les autres méthodes d'instance**, acceptent comme premier argument `self` (équivalent de `this` en Java ou JS). Oui, on passe à chaque méthode la référence à l'instance, c'est une habitude à prendre de 
- La méthode `__str__()` est l'équivalent de `toString()` en Java : elle renvoie une représentation en texte de l'objet.
- Enfin, contrairement à Java ou JS, pas de mot-clé `new` pour créer une instance, mais juste le nom de la classe, avec les arguments requis par le constructeur entre parenthèses.