Llamar a un módulo de Python definido por el usuario
En este ejemplo se 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 MATLAB Editor.
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,pwd) == 0 insert(py.sys.path,int32(0),pwd); 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
En este ejemplo se 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 MATLAB Editor.
Copie estas instrucciones que definen 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 reemplazando 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 del área de trabajo. La práctica recomendada es llamar a clear
desde la línea de comandos. Si ejecuta clear classes
en un área de trabajo, como un área de trabajo de funciones, es posible que clear
no pueda borrar todas las variables. Intente ejecutar el comando desde el área de trabajo básica.
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 un módulo actualizado
Llame a la función myfunc
actualizada.
py.newmod.myfunc
ans = Python str with no properties. version 2