{{backlinks>.}}
====== Commentaire J4 ======
* 💡 En cas de blocage sur la **maison**, essayer la [[icn>python:pygram:maison#maison_alternative|Maison alternative]]
* :!: Il est important d'ouvrir [[icn>python:pygram:utiliser#console|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''.