Bonjour,

j'aimerais avoir un rectangle en instanciant la classe joueur (c'est pour faire un pong ensuite), mais j'ai NameError: name 'master' is not defined . Je pensais hériter des méthodes et des attributs en self de la classe parente dans ma classe joueur. Bref, ce n'est plus très clair pour moi.

Il y a quelqu'un temps, wiztricks, pour un autre problème, m'a proposé une amélioration de code utilisant : super().__init__(bg='light yellow',height=500,width=500). Qu'apporte super() ? J'ai du mal à l'utiliser et à comprendre (internet indique que c'est surtout pour de l'héritage multiple). l'emploi de super() doit il être privilégié? ou est ce que je peux m'en passer pour des cas simples ? Quelle est la meilleurs pratique ?

Dans le tuto oscillo de Swinnen, l'auteur fait une classe en héritant de Canvas également.

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
 
from tkinter import *
 
class Application(Canvas):   
    def __init__(self, master, lar, hau):
        Canvas.__init__(self)                            
        self.configure(width=lar, height=hau, bg="black")  
        self.lar, self.hau = lar, hau
        self.create_line(self.lar/2,0,self.lar/2,self.hau+2,fill="white",width = 5)        
 
class Joueur(Application):
    def __init__(self):
        Application.__init__(self, master, lar, hau)
        joueur = self.create_rectangle(10,self.lar/2,10,self.lar/2+20,fill="white",width = 5)        
 
root = Tk()
launch = Application(root, 600, 300)
launch.pack()
joueur_1 = Joueur()
root.mainloop()
Merci