主要内容

调用用户定义的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 if 'son' in w]返回newlist def theend(words): """将'The End'添加到单词列表"""单词。append('The End')返回单词
  • 从MATLAB命令提示符中,将当前文件夹添加到Python搜索路径中。

    如果计数(py.sys.path,'') == 0 insert(py.sys.path,int32(0),'');结束
  • 要了解如何调用该功能,请阅读函数签名搜索功能mymod.py源文件。这个函数有一个输入参数,单词

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

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

    函数返回一个列表。

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

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

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

    函数返回py.list价值。

  • 原始的输入N是不变的。

    N
    没有属性的Python列表。约翰逊琼斯[' ',' ','詹姆斯)

重新加载修改用户自定义Python模块

这个例子展示了如何在运行进程内的Python解释器时重新加载修改过的Python模块。至于另一种选择,请看重新加载进程外的Python解释器

当您使用此工作流时,MATLAB删除工作空间中的所有变量、脚本和类。有关更多信息,请参见清除函数。

重载模块的Python调用语法取决于你的Python版本。要验证您的Python版本,请使用MATLABpyenv函数。

创造Python模块

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

复制定义amyfunc函数并将文件保存为mymod.py

def myfunc(): ""显示消息。"""返回版本1 "

调用myfunc

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

修改模块

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

返回“版本2”

保存文件。

卸载模块

清除

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

导入修改模块

mod = py.importlib.import_module (“mymod”);

重新加载模块Python版本2.7

py.reload (mod);

重新加载模块Python版本3. x

py.importlib.reload (mod);

更新模块中的调用功能

调用更新myfunc函数。

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

另请参阅

|

相关话题