Bonjour,
sujet certainement trivial mais je ne comprends pas la différence entre:
lab1=Label(fen1, text = "label dans fen1", bg='bisque', font=("Verdana", 10))
lab1.place(x=xl, y=yl)
et
lab1=Label(fen1, text = "label dans fen1", bg='bisque', font=("Verdana", 10)).place(x=xl, y=yl)
je n’ai pas trouvé d’explication mais c’est sûr il y a une différence de fonctionnement
Salut,
Dans le premier cas lab1
est une variable référençant un label, et tu utilises ensuite cette variable pour placer le label sur la fenêtre.
>>> lab1=Label(fen1, text = "label dans fen1", bg='bisque', font=("Verdana", 10))
>>> lab1.place(x=xl, y=yl)
>>> lab1
<tkinter.Label object .!label>
>>> print(lab1)
.!label
Dans le deuxième cas le label n’est affecté à aucune variable mais tu utilises directement ce label pour le placer sur la fenêtre.
Tu stockes le résultat de l’appel à la méthode place
(qui est None
) dans lab1
.
>>> lab1=Label(fen1, text = "label dans fen1", bg='bisque', font=("Verdana", 10)).place(x=xl, y=yl)
>>> lab1
>>> print(lab1)
None
je pensais affecter également une variable lab1 dans le second cas…
OK merci
Tu affectes bien une variable mais tu ne lui donnes pas la même valeur puisque tu lui donnes la valeur de retour de la méthode place
, qui est None
.
Pour voir le problème différemment, c’est comme si tu faisais :
x = 5
print(x)
et
x = print(5)
Dans les deux cas ça affiche 5
, mais la valeur de x
n’est pas la même suivant le code utilisé.
oui, je comprends mais comme la différence de fonctionnement n’est pas toujours visible, je n’avais pas perçu le fond du problème , sauf quelque rares fois où cela m’avais étonné…sans éveiller le moindre soupçon…