Bra*_*roy 2 python function spyder
在其他语言中,我经常这样做:
someFunc()
someFunc() {
// This is my function
}
Run Code Online (Sandbox Code Playgroud)
这样我可以将所有函数堆叠在文件中较低的位置,但是将函数调用放在顶部.现在我对所发生的一切都有一个很好的概述.
但是,当我在Spyder的Python 3中执行此操作时,我收到了未定义名称:'myfunc'的警告
my_func("Some string")
def my_func(some_var):
print(some_var)
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但我不确定这里的最佳做法.我的方法是否会产生任何负面影响?或者它只是在你打电话之前拥有你的功能的指南?
我上面设置的代码不会为我工作.这是为什么?我正在使用Anaconda运行Python 3.4.3.我的版本有什么不同?或者是因为我在Spyder中运行它?
编辑:显然Spyder以神秘的方式工作.首先,我在定义后进行了调用,然后我将调用交换到第一行,它仍然有效.Spyder似乎缓存了功能,或者至少没有将它们清除掉.(虽然我不确定Spyder是否正在进行缓存或Python本身.我正在考虑使用Python.)对于任何想知道这一点的新手:解决方案是重新启动程序和/或Python服务.
这在标准Python构建中不起作用,因为文件是按顺序解析的.你引用的其他语言是编译的(在传统意义上,不是JIT或任何东西),所以顺序并不重要,但Python要求首先要做的事情.
定义/分配/新建/ etc.使用它们之前的事情.