Variable non global, qui agit comme une global...
Résolu/Fermé
MickaToast
Messages postés
142
Date d'inscription
mercredi 19 février 2014
Statut
Membre
Dernière intervention
23 juillet 2015
-
16 août 2014 à 23:58
MickaToast Messages postés 142 Date d'inscription mercredi 19 février 2014 Statut Membre Dernière intervention 23 juillet 2015 - 18 août 2014 à 19:59
MickaToast Messages postés 142 Date d'inscription mercredi 19 février 2014 Statut Membre Dernière intervention 23 juillet 2015 - 18 août 2014 à 19:59
A voir également:
- Variable non global, qui agit comme une global...
- Region global ✓ - Forum Jeux vidéo
- L'en-tête du document comporte une information qui n’apparaît pas à l'impression car elle est de couleur blanche. de quelle information s'agit-il ? ✓ - Forum Bureautique
- Vba range avec variable ✓ - Forum VB / VBA
- Problème à l'impression ✓ - Forum LibreOffice / OpenOffice
4 réponses
Sugel
Messages postés
4076
Date d'inscription
jeudi 18 août 2011
Statut
Membre
Dernière intervention
19 juin 2017
725
Modifié par Sugel le 17/08/2014 à 10:44
Modifié par Sugel le 17/08/2014 à 10:44
c'est ptet mieux si tu passe le chan à joindre en argument de la fonction, nan ^^ ?
Python est un langage interprété, il prends donc certaines libertés vis à vis de la cohérence de ton code.
En l'occurrence, tu n'as pas de variable CHANNEL déclarée à l'intérieur de ta fonction, donc python vas de la chercher dans le main.
PS: c'est fou, moi aussi je suis sur un bot IRC en C en ce moment ^^
------------------------------------------------------------------------------------
"La peur mène à la colère. La colère mène à la haine. Et la haine ... mène à la souffrance." - Yoda
Python est un langage interprété, il prends donc certaines libertés vis à vis de la cohérence de ton code.
En l'occurrence, tu n'as pas de variable CHANNEL déclarée à l'intérieur de ta fonction, donc python vas de la chercher dans le main.
PS: c'est fou, moi aussi je suis sur un bot IRC en C en ce moment ^^
------------------------------------------------------------------------------------
"La peur mène à la colère. La colère mène à la haine. Et la haine ... mène à la souffrance." - Yoda
MickaToast
Messages postés
142
Date d'inscription
mercredi 19 février 2014
Statut
Membre
Dernière intervention
23 juillet 2015
24
17 août 2014 à 17:27
17 août 2014 à 17:27
Bonjour Sugel,
Ce que je ne comprends pas alors c'est que des fois, python me dit qu'il ne reconnait pas la variable, je dois donc la passer en global pour qu'elle puisse être utilisé dans le main et la fonction...
Ce que je ne comprends pas alors c'est que des fois, python me dit qu'il ne reconnait pas la variable, je dois donc la passer en global pour qu'elle puisse être utilisé dans le main et la fonction...
Sugel
Messages postés
4076
Date d'inscription
jeudi 18 août 2011
Statut
Membre
Dernière intervention
19 juin 2017
725
17 août 2014 à 17:53
17 août 2014 à 17:53
effectivement, oui.
de toute façon il est fortement déconseillé d'utiliser des variables globales, au point que tu n'aurai même pas du avoir l'occasion de poser la question :p
de toute façon il est fortement déconseillé d'utiliser des variables globales, au point que tu n'aurai même pas du avoir l'occasion de poser la question :p
Utilisateur anonyme
17 août 2014 à 21:35
17 août 2014 à 21:35
@MickaToast,
CHANNEL est bien une variable globale et locale dans le sens où tu déclares cette variable dans la partie principale du programme qui a deux dictionnaires, un global et un local.
Tu pourras l'utiliser dans le programme principal et dans tes fonctions du programme.
Par contre tu pourras modifier cette variable que dans la partie principale du programme, non dans une fonction. Dans le cas où tu souhaites le faire il faudra utiliser un mot clé qui est global. Effectivement, comme Sugel le suggère (il pensait certainement à ce mot clé), le mot clé global n'est pas conseillé, c'est très moche dans le sens où les débutant qui l'utilisent font du bricolage avec.
Exemple avec l'écriture d'une variable globale
Maintenant avec le mot clé global
CHANNEL est bien une variable globale et locale dans le sens où tu déclares cette variable dans la partie principale du programme qui a deux dictionnaires, un global et un local.
Tu pourras l'utiliser dans le programme principal et dans tes fonctions du programme.
Par contre tu pourras modifier cette variable que dans la partie principale du programme, non dans une fonction. Dans le cas où tu souhaites le faire il faudra utiliser un mot clé qui est global. Effectivement, comme Sugel le suggère (il pensait certainement à ce mot clé), le mot clé global n'est pas conseillé, c'est très moche dans le sens où les débutant qui l'utilisent font du bricolage avec.
Exemple avec l'écriture d'une variable globale
CHANNEL = None def modify(): CHANNEL = "hello" modify() print(CHANNEL) # None, CHANNEL est pas modifié
Maintenant avec le mot clé global
CHANNEL = None def modify(): global CHANNEL CHANNEL = "hello" modify() print(CHANNEL) # Affichage de hello, CHANNEL est modifié
MickaToast
Messages postés
142
Date d'inscription
mercredi 19 février 2014
Statut
Membre
Dernière intervention
23 juillet 2015
24
18 août 2014 à 19:59
18 août 2014 à 19:59
Ah je comprend mieux à quoi sert global du coup (oui, le débutant qui fait du bricolage c'était bien moi :D), mais du coup merci de m'avoir éclairé sur le fonctionnement du mot clé global!
Merci à vous deux et bonne soirée.
Merci à vous deux et bonne soirée.