Estoy investigando el uso de módulos en python en este momento y pensé que respondería la pregunta que Markus hace en los comentarios anteriores ("¿Cómo importar variables cuando están integradas en módulos?") Desde dos perspectivas:.
- variables/funciones, y
propiedad
- clase/método
Aquí es cómo iba a reescribir el programa principal f1.py para demostrar la reutilización variable para Markus:
import f2
myStorage = f2.useMyVars(0) # initialze class and properties
for i in range(0,10):
print "Hello, "
f2.print_world()
myStorage.setMyVar(i)
f2.inc_gMyVar()
print "Display class property myVar:", myStorage.getMyVar()
print "Display global variable gMyVar:", f2.get_gMyVar()
Aquí es cómo iba a reescribir el módulo reutilizable f2.py:
# Module: f2.py
# Example 1: functions to store and retrieve global variables
gMyVar = 0
def print_world():
print "World!"
def get_gMyVar():
return gMyVar # no need for global statement
def inc_gMyVar():
global gMyVar
gMyVar += 1
# Example 2: class methods to store and retrieve properties
class useMyVars(object):
def __init__(self, myVar):
self.myVar = myVar
def getMyVar(self):
return self.myVar
def setMyVar(self, myVar):
self.myVar = myVar
def print_helloWorld(self):
print "Hello, World!"
Cuando se ejecuta f1.py aquí es lo que la salida es parecida:
%run "f1.py"
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Display class property myVar: 9
Display global variable gMyVar: 10
Creo que el punto de Markus sería:
- Para volver a utilizar el código de un módulo más de una vez, poner el código de su módulo en funciones o clases,
- Para volver a utilizar las variables almacenadas como propiedades en módulos, inicializar propiedades dentro de una clase y añadir "getter" y "setter métodos" por loLas variablesno tienen que copiarse en el programa principal,
- Para reutilizar las variables almacenadas en los módulos, inicialice las variables y use las funciones getter y setter . Las funciones del colocador declararían las variables como globales.
Sí, existe la posibilidad de dividir los archivos en diferentes módulos e importar lo que necesita. http://docs.python.org/tutorial/modules.html – Borgleader
Lea su tutorial favorito de Python y aprenda sobre los módulos –