bjr
je voudrais savoir s'il est possible de changer une variable locale en une variable globale merci !
bjr
je voudrais savoir s'il est possible de changer une variable locale en une variable globale merci !
Salut,
Une variable n'est que l'association d'une chaîne de caractère à un objet.
Cette association est réalisée via des dictionnaires globals() et locals().
Et comme vous pouvez écrire dans globals(), on peut faire ce genre de chose...
Mais c'est rarement une bonne idée.
Quel problème cherchez vous à résoudre?
- W
En fait j'ai importé une image avec la commande
où direction représente le chemin d'accès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part photo=image.open(direction)
Ensuite j'ai fait
pour la convertir en gris et tout cela dans une fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part photogris=photo.convert('L')
simplement après je voudrais que photogris devienne variable globale pour être utilisée dans d'autres fonctions mais je ne sais pas comment faire ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 def import_gris(direction): """ importe une image en nuances de gris (qu'elle soit en couleurs ou pas) """ import PIL.Image as image photo=image.open(direction) photogris=photo.convert('L')
Salut,
Pourquoi ne pas faire que "import_gris" retourne l'objet qu'il a créé et laisser l'appelant en faire ce qu'il veut:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 def import_gris(direction): """ importe une image en nuances de gris (qu'elle soit en couleurs ou pas) """ import PIL.Image as image photo=image.open(direction) return photo.convert('L')Fonctionnellement, c'est l'appelant qui doit récupérer l'objet et le repasser en paramètre aux fonctions qui en ont besoin:simplement après je voudrais que photogris devienne variable globale pour être utilisée dans d'autres fonctions mais je ne sais pas comment faire ...
fonction1 et fonction2 reçoivent ce qu'il faut "en paramètre" et variable locale.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 photogris=import_gris('nom du fichier') fonction1(photogris) fonction2(photogris)
Inutile de passer par une variable "globale" qui sera une dépendance "indirecte" et donc plus difficile à gérer.
Il suffit d'organiser son code en niveaux: en bas des fonctions qui reçoivent ce qu'il faut dans leurs paramètres et retournent ce qu'on attend d'elles. Au dessus, un appelant qui organisera les objets échangés entre ces différentes fonctions.
- W
Partager