请原谅我知道这是一个非常基本的问题,但我自己无法解决。
我正在尝试将数据分析从 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/