La portée des variables
Dans les fonctions et le programme principal
Une variable créée dans le programme principal est visible dans les fonctions.
Une variable créée dans une fonction n'est pas visible.
Exemple
Dans l'exemple suivant, il y a deux boîtes dans un espace de jeux. Les deux fonctions montrent les respectivement les contenus des deux boîtes. Le programme principal représente l'espace de jeux.
def afficher_contenu_boite_1():
"""
Permet d'afficher le contenu de la boîte 1.
:return: Aucun
"""
jeu_boite_1 = "pistolet à eau"
print("╔═══════════════════════════════════════════╗")
print(f"║Dans la boîte 1, il y a un {jeu_boite_1} ║")
print(f"║Depuis la boîte 1, on peut voir la {jeu_espace_global} ║")
print("╚═══════════════════════════════════════════╝")
def afficher_contenu_boite_2():
"""
Permet d'afficher le contenu de la boîte 2.
:return:
"""
jeu_boite_2 = "qaquettes de tennis"
print("╔═══════════════════════════════════════════╗")
print(f"║Dans la boîte 2, il y a des {jeu_boite_2} ║")
print("╚═══════════════════════════════════════════╝")
# Tentative d'accès à l'objet dans la boîte 1
print("Depuis la boîte 2, on peut voir un(e)", jeu_boite_1)
print("Erreur : On ne peut pas voir l'objet de la boîte 1 depuis la boîte 2!")
if __name__ == "__main__":
# Imanigez que la partie de programme principal est un espace global de jeux (ex: un bac à sable).
jeu_espace_global = "Jeux de sable"
print("Explorons les boîtes...")
afficher_contenu_boite_1()
afficher_contenu_boite_2()
# Essayons de voir les objets dans l'espace de jeux, à l'extérieur des boîtes.
print(f"Dans l'espace de jeux global, il y a un {jeu_espace_global} et deux boîtes")
# Tentative d'accès aux objets des boîtes 1 et 2
print("En dehors des boîtes, on peut voir un ", jeu_boite_1)
print("En dehors des boîtes, on peut voir des ", jeu_boite_2)
Dans les blocs if/elif/else
if __name__ == "__main__":
# Une variable globale accessible partout dans la maison
maison = "Vous êtes dans la maison principale."
# choix = input("Faites un choix (cuisine ou salon) :")
choix = 'cuisine'
if choix == "cuisine":
# Variable locale dans le bloc if (cuisine)
objet_cuisine = "réfrigérateur"
print("Vous êtes dans la cuisine et vous trouvez un :", objet_cuisine)
# On peut voir l'objet de la cuisine et la maison
print("Depuis la cuisine, on peut voir :", maison)
else:
# Variable locale dans le bloc else (salon)
objet_salon = "Télécommande"
print("Vous êtes dans le salon et vous trouvez une :", objet_salon)
# On peut voir l'objet du salon et la maison
print("Depuis le salon, on peut voir :", maison)
# Tentatives d'accès aux objets après les blocs if/else
print("Après exploration, on peut voir l'objet de la cuisine :", objet_cuisine)
print("Après exploration, on peut voir l'objet du salon :", objet_salon)
print("Exploration de la maison...")
print(maison) # On peut toujours voir la maison
Last updated