Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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 origen mymod.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 para search 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. Escriba py. 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

Consulte también

Temas relacionados