Parcourir la source

Exemple section 4.3

Benoît Hubert il y a 7 ans
Parent
commit
a7e7d002c4
1 fichiers modifiés avec 28 ajouts et 0 suppressions
  1. 28 0
      examples/03-classes-starwars.py

+ 28 - 0
examples/03-classes-starwars.py

@@ -0,0 +1,28 @@
+class ForceSensitive:
+    capacites_base = ["soulever des objets"]
+
+    def __init__(self, nom, capacites=[]):
+        self.nom = nom
+        self.capacites = self.capacites_base + capacites
+
+    def __str__(self):
+        return "Je suis {nom} et je peux :\n  - {capacites}\n".format(nom=self.nom, capacites="\n  - ".join(self.capacites))
+
+class Jedi(ForceSensitive):
+    capacites_base = ["soulever des objets", "combattre au sabre laser", "influencer les esprits"]
+
+class JediBadass(ForceSensitive):
+    capacites_base = ["soulever des objets", "combattre au sabre laser", "influencer les esprits", "réapparaître comme fantôme"]
+
+class Sith(ForceSensitive):
+    capacites_base = ["soulever des objets", "combattre au sabre laser", "envoyer des éclairs"]
+
+leia = ForceSensitive("Leia Organa Solo", ["jouer à Mary Poppins"])
+rey = Jedi("Rey", ["à peu près tout faire en fait"])
+luke = Jedi("Luke Skywalker", ["projeter un hologramme", "entrer en lévitation"])
+obiwan = JediBadass("Obiwan Kenobi", ["balancer des punchlines de ouf"])
+empereur = Sith("L'Empereur", ["dissimuler la Force", "manipuler et trahir"])
+snoke = ForceSensitive("Leader Suprême Snoke", ["envoyer des éclairs", "skyper par télépathie"])
+
+for personnage in [leia, rey, luke, obiwan, empereur, snoke]:
+    print(personnage)