В этом примере показано, как вызвать методы из следующего 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 Из процесса.
Когда вы используете этот рабочий процесс, 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