Python proporciona una función para crear y almacenar clases y métodos y almacenarlos para su uso posterior. El archivo que contiene estos conjuntos de métodos y clases se denomina módulo . Un módulo puede tener otros módulos en su interior.
Nota: Para obtener más información, consulte Módulos de Python
Ejemplo: a continuación se muestra un ejemplo simple de importación de un módulo en el que hay 2 archivos que son module.py e importing_mod.py en el mismo directorio. El archivo module.py actúa como un módulo para el archivo import_mod.py.
módulo.py
# welcome method in the module def welcome(str): print("Hi ! % s Welcome to GfG" % str)
archivo import_mod.py
# importing module.py file import module as mod # running the welcome method mod.welcome("User_1")
Producción
Hi! User_1 Welcome to GfG
Carga dinámica de módulos o clases
Los módulos agregados en el código anterior están importando módulos estáticamente, es decir, en tiempo de compilación. En Python podemos importar módulos dinámicamente de dos formas
- Al usar el método __import__():
__import__()
es un método dunder (métodos de clase que comienzan y terminan con doble guión bajo también llamado método mágico) y todas las clases lo poseen. Se utiliza para importar un módulo o una clase dentro de la instancia de una clase. A continuación se muestra un ejemplo de este método, en el que importaremos un módulo dinámicamente. El archivo del módulo ahora se modifica como:módulo.py
# class inside the module
class
Welcome:
def
welcome(
str
):
print
(
"Hi ! % s Welcome to GfG"
%
str
)
Dynamic_import.py
class
Dimport:
def
__init__(
self
, module_name, class_name):
#__import__ method used
# to fetch module
module
=
__import__
(module_name)
# getting attribute by
# getattr() method
my_class
=
getattr
(module, class_name)
my_class.welcome(
'User_1'
)
# Driver Code
obj
=
Dimport(
"module"
,
"Welcome"
)
Producción
Hi! User_1 Welcome to GfG
- Usando el módulo imp: Los módulos pueden ser importados dinámicamente por el módulo imp en python. El siguiente ejemplo es una demostración sobre el uso del módulo imp. Proporciona el
find_module()
método para encontrar el módulo y elimport_module()
método para importarlo.Dynamic_import.py
import
imp
import
sys
# dynamic import
def
dynamic_imp(name, class_name):
# find_module() method is used
# to find the module and return
# its description and path
try
:
fp, path, desc
=
imp.find_module(name)
except
ImportError:
print
(
"module not found: "
+
name)
try
:
# load_modules loads the module
# dynamically ans takes the filepath
# module and description as parameter
example_package
=
imp.load_module(name, fp,
path, desc)
except
Exception as e:
print
(e)
try
:
myclass
=
imp.load_module(
"% s.% s"
%
(name,
class_name),
fp, path, desc)
except
Exception as e:
print
(e)
return
example_package, myclass
# Driver code
if
__name__
=
=
"__main__"
:
mod, modCl
=
dynamic_imp(
"GFG"
,
"addNumbers"
)
modCl.addNumbers(
1
,
2
)
Producción
Hi! User_1 Welcome to GfG
Publicación traducida automáticamente
Artículo escrito por piyush25pv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA