{{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''.