Bonjour.

Tout d'abord, le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
class BaseCreature(object):
    # C'est ici que je coince...
    def __init__(self, pv=1):
        self.pv = pv
 
 
class Monstre(BaseCreature):
    def __init__(self, laideur=0):
        self.laideur = laideur
 
 
class Heros(BaseCreature):
    def __init__(self, beaute=0):
        self.beaute = beaute
 
def test():
    orc = Monstre(pv=4, laideur=3)
    belle_mere = Monstre(laideur=10)
    jean = Heros(beaute=5)
    sekigo = Heros(pv=100, beaute=100)
 
    assert getattr(sekigo, 'pv') == 100
    assert getattr(sekigo, 'beaute') == 100
    assert getattr(belle_mere, 'pv') == 1
    assert getattr(belle_mere, 'laideur') == 10
 
if __name__ == "__main__":
    test()
Bon, j'essaye de me "former" à l'utilisation des tests. Mais là n'est pas la question.

Ce que je voudrais, c'est que des instances de classes soient déjà peuplés de la variable pv SANS avoir à écrire un truc comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
class Cailloux(BaseCreature):
    def __init__(self, pv=1, beaute=1):
        super(Cailloux, self).__init__(pv)
        self.beaute = beaute
mais rester dans le style des classes Heros et Monstre.

Ceci dit, ce n'est peut-être pas super correct de faire un truc comme cela. Je n'en sais rien. Mais en tout cas, ce serait vraiment plus rapide à écrire.

En espérant que vous compreniez au moins le problème (je ne suis pas toujours bien clair dans les explications de mes problèmes).
Et merci d'avoir déjà lu le sujet