travaux:j4c

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.