Maison  >  Article  >  développement back-end  >  Exemple d'analyse de la façon d'implémenter des variables globales inter-fichiers en Python

Exemple d'analyse de la façon d'implémenter des variables globales inter-fichiers en Python

小云云
小云云original
2017-12-12 09:13:582716parcourir

Lorsque nous écrivons des applications en Python, nous rencontrons parfois des situations où la même variable globale est transmise entre plusieurs fichiers. Ainsi, l'article suivant vous présente principalement la méthode d'implémentation des variables globales inter-fichiers en Python. Les amis dans le besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.

En langage C, puisque les variables doivent d'abord être déclarées puis utilisées, on peut clairement savoir si la variable utilisée est globale ou locale, par exemple :

int a = 5; 
void test(void) 
{ 
a = 1; // 没有先声明,所以用的是全局的变量a 
} 
void test1(void) 
{ 
int a; 
a = 2; // 前面声明了,所以用的是局部变量a,对其所做的修改不会影响全局变量a 
} 
void main(void) 
{ 
printf("before: a = %d\n", a); 
test(); 
printf("after test: a = %d\n", a); 
test1(); 
printf("after test1: a = %d\n", a); 
}

En python, les variables n'ont pas besoin d'être déclarées au préalable, elles peuvent être utilisées directement.

Implémentation de variables globales inter-fichiers en Python

Le mot-clé global en Python peut définir une variable comme variable globale, mais c'est limité à un appel de variables globales dans le module (fichier py), et l'utilisation à nouveau de global x dans un autre fichier py n'est pas accessible, car il n'y a pas de variable appelée x dans ce module py, donc une erreur non définie sera signalée.

En s'appuyant sur l'idée du mot-clé global, puisqu'il peut prendre effet dans un fichier, on peut alors simplement définir un "module de gestion des variables globales" spécifiquement pour les variables globales

Variable globale module de gestion globalvar.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
def _init():
 global _global_dict
 _global_dict = {}
def set_value(name, value):
 _global_dict[name] = value
def get_value(name, defValue=None):
 try:
  return _global_dict[name]
 except KeyError:
  return defValue

Définir les variables globales a.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import globalvar as gl
gl._init()
gl.set_value('name', 'cc')
gl.set_value('score', 90)

Obtenir les variables globales b.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import globalvar as gl
name = gl.get_value('name')
score = gl.get_value('score')
print("%s: %s" % (name, score))

Programme principal main.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import a
import b

Ensuite, exécutez le fichier du programme principal python main.py, et le résultat est cc : 90

Recommandations associées :

Maîtriser complètement Python

Implémentation Python d'un exemple de code d'algorithme de correspondance de chaînes

Analyse des méthodes d'implémentation des types intégrés étendus Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn