主要内容

调用用户定义的Python模块

这个例子展示了如何从以下Python调用方法®模块。该模块在文档中的示例中使用。该示例解释了如何在MATLAB中创建模块®.如果你创建mymod.py在Python编辑器中,确保模块位于Python搜索路径上。此示例还解释了如果您不是有经验的Python用户,如何获得调用该函数的帮助。

  • 将当前文件夹更改为可写文件夹。

  • 在MATLAB编辑器中打开一个新文件。

  • 复制这些命令并将文件保存为mymod.py

    # mymod.py """Python模块演示了将MATLAB类型传递给Python函数""" def search(words): """返回包含'son'的单词列表""" newlist = [w for w in words如果'son' in w]返回newlist def theend(words): """将'The End'附加到单词列表"""单词。append('The End')返回单词
  • 从MATLAB命令提示符中,将当前文件夹添加到Python搜索路径。

    如果计数(py.sys.path,insert(py.sys.path,int32(0),);结束
  • 类的函数签名,以了解如何调用函数搜索mymod.py源文件。该函数接受一个输入参数,单词

    def搜索(词):
  • 中的函数帮助mymod.py源文件。根据Python网站文档,“帮助”是“作为模块、函数、类或方法定义中的第一个语句出现的字符串文字”。帮助搜索是:

    返回包含'son'的单词列表""" "

    该函数返回一个列表。

  • 在MATLAB中创建一个输入参数,一个名称列表。

    N = py.list({“琼斯”“约翰逊”“詹姆斯”})
    N = Python列表,没有属性。['Jones', 'Johnson', 'James']
  • 调用搜索函数。类型py。在模块名和函数名前面。

    name = py.mymod.search(N)
    names =没有属性的Python列表。(“约翰逊”)

    函数返回一个py.list价值。

  • 原始输入N是不变的。

    N
    N = Python列表,没有属性。['Jones', 'Johnson', 'James']

重载修改自定义Python模块

此示例显示如何在进程内运行Python解释器时重新加载修改后的Python模块。有关替代方法,请参见重新加载进程外Python解释器

创建Python模块

将当前文件夹更改为可写文件夹。在MATLAB编辑器中打开一个新文件。

复制这些定义a的语句myfunc函数并将文件另存为newmod.py

# newmod.py def myfunc(): """显示消息。"返回“版本1”

调用myfunc

py.newmod.myfunc
ans = Python str,没有属性。版本1

修改模块

修改功能,替换返回声明如下:

返回'version 2'

保存文件。

卸载模块

清晰的

MATLAB会删除工作区中的所有变量、脚本和类。

导入修改模块

Mod = py.importlib.import_module(“newmod”);

重新加载模块Python

py.importlib.reload (mod);

调用更新模块中的函数

调用更新后的myfunc函数。

py.newmod.myfunc
ans = Python str,没有属性。版本2

另请参阅

相关的话题