Commentaire J4

💡 En cas de blocage sur la maison, essayer la Maison alternative

Il est important d'ouvrir la console pour pouvoir commprendre et corriger les erreurs de son code.

Quelques messages d'erreurs communs :

NoneType : l'objet None en Python, cela veut dire ... Rien !

Python vous prévient que vous cherchez à accéder à un objet vide.

Dans cet exercice, l'erreur est souvent la suivante : oubli du return obj en fin de fonction.

Si vous avez oublié return, la fonction renvoie Rien, ... None

Espace Global

Un point important : il existe, aussi en programmation, un «espace global» et un «espace local».

L'espace «local», c'est l'espace «à l'intérieur» de la fonction.

L'espace «global», c'est l'espace «à l'extérieur» de la fonction.

Dans l'exemple ci-dessous, la variable a est globale, la variable b locale

a = 1 def example(): b = 2 print(a+b)

>>> 3

Si, dans l'espace local de la fonction, il est fait référence à une variable (ici a ) et que cette variable n'existe pas dans la fonction, elle est «recherchée» dans l'espace global.

En revanche, si elle existe dans l'espace local, c'est la variable locale qui prime:

a = 1 def example(): a = 10 b = 2 print(a+b)

>>> 12

Espace Externe

De la même façon, on peut distinguer un «espace interne» (le fichier dans lequel nous écrivons nos fonctions) d'un «espace externe» (les autres fichiers).

Quand nous écrivons:

Volumes = bpy.data.texts["volumes.py"].as_module()

Nous faisons référence au «fichier externe» volumes.py

Ce fichier contient des fonctions, comme extrude()

On peut donc faire référence à cette fonction ainsi:

Volumes.extrude()

Attention, si vous avez «copier/coller» la fonction cube() du fichier volumes.py dans le fichier architectures.py, faites bien la différence entre ces deux appels de fonction:

cube() Volumes.cube()

La fonction cube() fait référence à la fonction dans le fichier (si elle existe).

La fonction Volumes.cube() fait référence à la fonction dans le fichier volumes.py.