Llamar a un módulo de Python definido por el usuario
Este ejemplo muestra cómo llamar a métodos desde el siguiente módulo de Python®. Este módulo se utiliza en ejemplos de la documentación. El ejemplo explica cómo crear el módulo en MATLAB®. Si crea mymod.py
en un editor de Python, asegúrese de que el módulo esté en la ruta de búsqueda de Python. Este ejemplo también explica cómo obtener ayuda para llamar a la función si no tiene mucha experiencia en Python.
Cambie la carpeta actual a una carpeta con permiso de escritura.
Abra un archivo nuevo en el editor de MATLAB.
Copie estos comandos y guarde el archivo como
mymod.py
.# mymod.py """Python module demonstrates passing MATLAB types to Python functions""" def search(words): """Return list of words containing 'son'""" newlist = [w for w in words if 'son' in w] return newlist def theend(words): """Append 'The End' to list of words""" words.append('The End') return words
Desde la línea de comandos de MATLAB, añada la carpeta actual a la ruta de búsqueda de Python.
if count(py.sys.path,'') == 0 insert(py.sys.path,int32(0),''); end
Para aprender a llamar a la función, lea la firma de función para la función
search
en el archivo de origenmymod.py
. La función utiliza un argumento de entrada,words
.def search(words):
Lea la ayuda para funciones en el archivo de origen
mymod.py
. Según la documentación de la página web de Python, la ayuda está en "un literal de cadena que aparece como la primera instrucción en una definición de módulo, función, clase o método". La ayuda parasearch
es:"""Return list of words containing 'son'"""
La función devuelve una lista.
Cree un argumento de entrada, una lista de nombres, en MATLAB.
N = py.list({'Jones','Johnson','James'})
N = Python list with no properties. ['Jones', 'Johnson', 'James']
Llame a la función
search
. Escribapy.
delante del nombre del módulo y el nombre de la función.names = py.mymod.search(N)
names = Python list with no properties. ['Johnson']
La función devuelve un valor
py.list
.La entrada original
N
no cambia.N
N = Python list with no properties. ['Jones', 'Johnson', 'James']
Volver a cargar un módulo de Python modificado definido por el usuario
Este ejemplo muestra cómo volver a cargar un módulo de Python modificado mientras se ejecuta el intérprete de Python dentro de proceso. Para ver una alternativa, consulte Volver a cargar un intérprete de Python fuera de proceso.
Crear un módulo de Python
Cambie la carpeta actual a una carpeta con permiso de escritura. Abra un archivo nuevo en el editor de MATLAB.
Copie estas instrucciones definiendo una función myfunc
y guarde el archivo como newmod.py
.
# newmod.py def myfunc(): """Display message.""" return 'version 1'
Llame a myfunc
.
py.newmod.myfunc
ans = Python str with no properties. version 1
Modificar un módulo
Modifique la función, sustituyendo la instrucción return
por lo siguiente:
return 'version 2'
Guarde el archivo.
Descargar un módulo
clear classes
MATLAB elimina todas las variables, scripts y clases en el área de trabajo.
Importar un módulo modificado
mod = py.importlib.import_module('newmod');
Volver a cargar un módulo en Python
py.importlib.reload(mod);
Llamar a una función en el módulo actualizado
Llame a la función myfunc
actualizada.
py.newmod.myfunc
ans = Python str with no properties. version 2