Search this site
Embedded Files
Mon Python pas à pas
  • Accueil
  • INSTRUCTIONS
  • METHODES
  • MODULES
  • LOGITHEQUE
Mon Python pas à pas
  • Accueil
  • INSTRUCTIONS
  • METHODES
  • MODULES
  • LOGITHEQUE
  • More
    • Accueil
    • INSTRUCTIONS
    • METHODES
    • MODULES
    • LOGITHEQUE

⇨ MENU ⇨ INSTRUCTIONS

nonlocal

DESCRIPTION.


Précise que la variable fait référence à une variable déclarée dans un bloc parent (fonction parente), et non à une nouvelle variable locale du sous bloc (fonction enfant).




SYNTAXE.


nonlocal variable_a , variable_b , ... , variable_n


nonlocal ⇨ appel de l’instruction [ OBLIGATOIRE ]

variable ⇨ noms des variables [ optionnel ]




REMARQUES.


nonlocal ne doit pas utilisée en dehors de la définition d'une méthode d'une autre méthode (sous fonction).


Toutes variables déclarées à l'intérieur d'une fonction dans un autre fonction (def imbriquée dans def) sont considérées comme locales à cette sous fonction, si elle n'est pas spécifiquement introduite par l'instruction nonlocal.


Les variables déclarées comme nonlocal doivent être présentes dans la fonction parente et avoir été affecté ou créé avant l'appel de la sous fonction où elles sont utilisées en nonlocal. Et elles ne doivent pas avoir été utilisé dans la sous fonction avant cette déclaration.




EXEMPLE AVEC NONLOCAL.


def FNC_Principal ( ) :

kvariable = 7

print ( f"kvariable avant la boucle : { kvariable }." )

print ( )


def FNC_Secondaire ( ) :

for kvaleur in range ( 5 ) :

nonlocal kvariable

kvariable = kvaleur + ( kvaleur**2 )

print ( f"kvariable dans la boucle pour { kvaleur } donne { kvariable }." )

print ( )        


FNC_Secondaire ( )

print ( f"kvariable après la boucle : { kvariable }." )


FNC_Principal ( )



retourne :

kvariable avant la boucle : 7.


kvariable dans la boucle pour 0 donne 0.

kvariable dans la boucle pour 1 donne 2.

kvariable dans la boucle pour 2 donne 6.

kvariable dans la boucle pour 3 donne 12.

kvariable dans la boucle pour 4 donne 20.


kvariable après la boucle : 20


Après l'exécution de FNC_Secondaire, la valeur de kvariable est différente. kvariable a bien été modifiée dans FNC_Secondaire.




EXEMPLE SANS NONLOCAL.


def FNC_Principal ( ) :

kvariable = 7

print ( f"kvariable avant la boucle : { kvariable }." )

print ( )


def FNC_Secondaire ( ) :

for kvaleur in range ( 5 ) :

kvariable = kvaleur + ( kvaleur**2 )

print ( f"kvariable dans la boucle pour { kvaleur } donne { kvariable }." )

print ( )        


FNC_Secondaire ( )

print ( f"kvariable après la boucle : { kvariable }." )


FNC_Principal ( )


retourne :

kvariable avant la boucle : 7.


kvariable dans la boucle pour 0 donne 0.

kvariable dans la boucle pour 1 donne 2.

kvariable dans la boucle pour 2 donne 6.

kvariable dans la boucle pour 3 donne 12.

kvariable dans la boucle pour 4 donne 20.


kvariable après la boucle : 7.


Après l'exécution de FNC_Secondaire, la valeur de kvariable est identique. kvariable de la fonction FNC_Principal n'a pas été modifiée dans FNC_Secondaire. Bien que les deux variables ait le même nom, il s'agit ici d'objets distincts. Pensez qu'il s'agit, en fait, de FNC_Principal.kvariable et de FNC_Secondaire.kvariable.




Voir les variables pour plus de détails.



Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions. 

Dans la LOGITHEQUE de MON PYTHON PAS A PAS

vous trouvez des suggestions de projets simples et classiques pour

ooo

TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER

ooo

la programmation récréative avec le langage PYTHON 3

avec un exemple de résolution à télécharger pour vous inspirer.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse