Commentaire J3

La fonction rectangle() produit 1 seul rectangle et non 2.

C'est tout l'intérêt d'une fonction : pouvoir appeler une fonction qui produit un objet bien déterminé, autant de fois que nécessaire, et dans des contextes variés (dans d'autres fonctions par exemple). En un mot, les fonctions doivent être réutilisables.

La fonction square() fait appel à la fonction rectangle(), « tout simplement ». Il s'agit simplement de prendre conscience que les fonctions sont réutilisables. La seule différence, donc, entre la fonction rectangle() et la fonction square(), c'est que les variables w et h sont identiques, un carré est un rectangle de même hauteur et de même largeur.

Le nom des objets doit être défini avant d'utiliser la fonction build()

obj.name = "square" obj.build()

Pour renommer un objet déjà construit, il faut utiliser la fonction rename()

obj.rename("new_name")

La fonction ne doit être utilisée qu'une seule fois. Quand vous utilisez une fonction qui construit un objet Pygram et retourne (return) cet objet, il ne faut pas re-construire cet objet (build()).