Вызов пользовательского модуля 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']

Похожие темы

Была ли эта тема полезной?