Вызов пользовательского модуля Python

В этом примере показано, как вызвать методы от следующего модуля Python®. Этот модуль используется примерами в документации. Пример объясняет, как создать модуль в MATLAB®. Если вы создаете mymod.py в редакторе Python, быть уверенным, что модуль находится на пути поиска файлов Python. Этот пример также объясняет, как получить справку для вызывания функции, если вы не опытный пользователь Python.

  • Измените свою текущую папку в перезаписываемую папку.

  • Откройте новый файл в редакторе MATLAB.

  • Скопируйте эти команды и сохраните файл как 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
    
  • Из командной строки MATLAB добавьте текущую папку в путь поиска файлов Python.

    if count(py.sys.path,'') == 0
        insert(py.sys.path,int32(0),'');
    end
  • Чтобы изучить, как вызвать функцию, считайте функциональную подпись для search функция в mymod.py исходный файл. Функция берет один входной параметр, words.

    def search(words):
  • Считайте функциональную справку в mymod.py исходный файл. Согласно документации веб-сайта Python, справка находится в “строковом литерале, который происходит как первый оператор в модуле, функции, классе или определении метода”. Справка для search :

    """Return list of words containing 'son'"""

    Функция возвращает список.

  • Создайте входной параметр, список имен, в MATLAB.

    N = py.list({'Jones','Johnson','James'})
    N = 
    
      Python list with no properties.
    
        ['Jones', 'Johnson', 'James']
  • Вызовите search функция. Введите py. перед именем модуля и именем функции.

    names = py.mymod.search(N)
    names = 
    
      Python list with no properties.
    
        ['Johnson']

    Функция возвращает py.list значение.

  • Исходный вход N неизменно.

    N
    N = 
    
      Python list with no properties.
    
        ['Jones', 'Johnson', 'James']

Перезагрузка измененного пользователем модуля Python

В этом примере показано, как перезагрузить модифицированный модуль Python при выполнении незавершенного Интерпретатора Python. Для альтернативы смотрите Перезагрузку Интерпретатор Python Из процесса.

Когда вы используете этот рабочий процесс, MATLAB удаляет все переменные, скрипты и классы в рабочей области. Для получения дополнительной информации смотрите clear classes функция.

Python, вызывая синтаксис, чтобы перезагрузить модуль зависит от вашей версии Python. Чтобы проверить вашу версию Python, используйте MATLAB pyenv функция.

Создание модуля Python

Измените свою текущую папку в перезаписываемую папку. Откройте новый файл в редакторе MATLAB.

Скопируйте эти операторы, задающие myfunc функционируйте и сохраните файл как mymod.py.

def myfunc():
    """Display message."""
    return 'version 1'

Вызовите myfunc.

py.mymod.myfunc
ans = 

  Python str with no properties.

    version 1

Изменение модуля

Измените функцию, заменив return оператор со следующим:

    return 'version 2'

Сохраните файл.

Разгрузка модуля

clear classes

MATLAB удаляет все переменные, скрипты и классы в рабочей области.

Импорт измененного модуля

mod = py.importlib.import_module('mymod');

Перезагрузка модуля в версии 2.7 Python

py.reload(mod);

Перезагрузка модуля в версиях Python 3.x

py.importlib.reload(mod);

Вызывание функции в обновленном модуле

Вызовите обновленный myfunc функция.

py.mymod.myfunc
ans = 

  Python str with no properties.

    version 2

Смотрите также

|

Похожие темы