{{backlinks>.}}
====== Carré ======
* Dans le fichier texte ''shapes.py'', à la suite de la fonction [[python:pygram:rectangle|Rectangle]]
* Ajouter une fonction ''square(x,y,w)'' permettant de générer des carrés de toutes tailles.
* Utiliser la fonction ''square()'' pour ajouter un carré à côté des deux premiers rectangles.
* Voir plus bas les **[[#détails]]** de construction.
{{:python:pygram:square.png|}}
===== Détails =====
* Par la suite, nous masquons les «\ contenus\ » que vous devez créer par ''...''
==== Arguments ====
* La fonction doit prendre **3 arguments** et utiliser la fonction [[python:pygram:rectangle|Rectangle]]
==== Nom ====
* Les objets créés par la fonction ''square()'' doivent être nommés ''square''
* Pour renommer les objets créés par la fonction ''rectangle()''
* Il faut modifier la fonction ''rectangle()'' pour qu'elle **[[icn>python:fonction#sorties|retourne]]** la variable ''obj'' qui contient l'objet Pygram qu'elle a créé\ :
def rectangle(...):
...
return obj
* Dans la fonction ''square()'' maintenant, récupérer l'objet et le stocker dans une variable ''obj''
obj = rectangle(...)
* Puis utiliser dans la fonction ''square()'' la fonction ''rename()'' des objets Pygram\ :
obj.rename("square")
==== Structure ====
* Le fichier ''shapes.py'' doit donc maintenant contenir les éléments suivants\ :
=== Le module d'importation ===
import bpy
Pygram = bpy.data.texts["pygram.py"].as_module()
* La **fonction** ''rectangle()''
def rectangle(...) :
...
* Suivie des **appels** de fonctions que nous pouvons maintenant stocker dans des variables
r1 = rectangle(...)
r2 = rectangle(...)
* Ensuite, nous avons la **fonction** ''square()''
* Dans laquelle un appel de la fonction ''rectangle()'' a lieu
def square(...):
...
obj = rectangle(...)
...
return obj
* Enfin, nous appelons la fonction ''square()'' et stockons l'objet dans une nouvelle variable\ :
sq = square(...)
* :!: Attention à ne pas nommer la variable contenant l'objet carré «\ ''square''\ », car ce nom est **déjà utilisé** par la **fonction** ''square()''.
==== Objets ====
* À chaque fois que nous essayons ce script, de nouveaux objets sont créés qui viennent se superposer sur les objets précédemment créés.
* Ajoutons juste en dessous de la ligne d'**[[#le_module_d'importation|importation de module]]** la fonction suivante pour supprimer tous les objets avant chaque nouvelle utilisation du script\ :
Pygram.cleanup()