{{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()