python - 调用 python 函数而不从编辑器运行

标签 python function

请原谅我知道这是一个非常基本的问题,但我自己无法解决。

我正在尝试将数据分析从 Matlab 切换到 Python,但我正在努力解决一些非常基本的问题:在 Matlab 中,我在编辑器中编写了一个函数,要使用该函数,我只需从命令行或其他函数内。我在 matlab 编辑器中编写的函数在函数定义行给出了一个名称,通常函数名称最好与 .m 文件名匹配以避免混淆。

我不明白 Python 中的函数有何不同,因为我还没有成功地翻译相同的方法。

例如,如果我在 Python 编辑器中编写一个函数(我使用的是 Python 2.7 和 Spyder),仅保存 .py 文件并从 Python 终端通过其名称调用它是行不通的。我收到“函数未定义”错误。但是,如果我在 Spyder 的编辑器中执行该函数(使用“运行文件”按钮),不仅代码可以正确执行,从那时起该函数还可以直接从终端调用。

所以...我做错了什么?我完全明白,使用 Python 并不在各方面都与 Matlab 相同,但似乎我想要做的事情并不是没有道理的。我只是希望能够编写函数并从 python 命令行调用它们,而不必先通过编辑器运行每个函数。我确信我的错误一定非常简单,但是在网上进行了大量阅读并没有让我找到答案。

感谢您提供任何信息!

最佳答案

如果您想使用 Python 中特定文件中定义的函数,您需要先“导入”该文件。这类似于运行该文件中的代码。 Matlab 不要求您执行此操作,因为它会搜索具有匹配名称的文件并自动为您读取代码。

例如,

myFunction.py 是一个包含

的文件
def myAdd(a, b):
    return a + b

为了从 Python 命令行或另一个文件访问此函数,我需要输入

from myFunction import myAdd

然后在本次 session 期间我可以输入

myAdd(1, 2)

有多种使用导入的方法,请参阅here .

关于python - 调用 python 函数而不从编辑器运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32051513/

相关文章:

python - Jinja 渲染 matplotlib 图?

python - 来自 Geopandas GeoDataFrame 的 Choropleth map

javascript - jQuery "$(...).effect is not a function"

c - 此代码有什么问题?每次显示错误的输出

c - Arduino 不同函数中具有两个值的全局变量

python - 寻找组织大型 kivy 项目的好方法

python - Python中是否可以使用实例中的方法来装饰类中的方法

python - 加入python中的列表列表

javascript - Uncaught ReferenceError - 未定义函数

bash - 从 while read 行运行函数