Establecimiento de accesibilidad de variables entre módulos
En Python, una variable conveniente entre módulos es __debug__. Sin embargo, crear una variable personalizada con una funcionalidad similar puede parecer un desafío. Este artículo profundiza en este tema y explora un método para definir una variable compartida entre módulos preservando al mismo tiempo su inmutabilidad.
Solución: aprovechar las variables globales a nivel de módulo
Para establecer una variable entre módulos sin compartir una instancia de variable común, considere emplear variables globales a nivel de módulo. Estas variables se definen y asignan dentro de un módulo y son accesibles para otros módulos que las importan. Al asignar la variable antes de importar los módulos dependientes, se puede establecer un valor consistente en todo el proyecto.
A continuación se proporciona un ejemplo:
a.py:
var = 1
b.py:
import a print(a.var) import c print(a.var)
c.py:
import a a.var = 2
Prueba:
$ python b.py # Output 1 2
En este ejemplo, la variable var se define en el módulo a.py y se vuelve accesible para el módulo b.py tras su importación. Aunque el módulo c.py cambia el valor de var, el módulo b.py conserva su valor original.
Aplicación del mundo real
Django proporciona un caso de uso práctico para variables compartidas a nivel de módulo. Su módulo global_settings.py sirve como ejemplo en el que las configuraciones se exponen como atributos de módulo en lugar de como un único objeto compartido.
Al emplear esta técnica, se puede lograr el intercambio de variables entre módulos manteniendo la integridad de las variables y simplificando el código del módulo. organización.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3