python shell和Execfile范围
题
我是从Ipython外壳内部工作的,通常需要重新加载包含我在构建功能的功能的脚本文件。
在我的主体内部。我有:
def myreload():execfile(“ main.py”)execfile(“ shotefile.py”)
如果我已经在同一ipython会话中运行了execfile命令,呼叫myreload()工作正常。
但是,由于某种原因,如果会话是新鲜的,而我刚刚称为execfile(“ main.py”),则MyReLoad()实际上并未从oferter.py内部产生函数。不过,它不会丢任何错误。
有任何想法吗?
解决方案
函数创建一个新范围。 execfile()
在当前范围内运行脚本。您正在做的事情将不起作用。
其他提示
如果您寻求学习实际正确使用 ipython (即在交互式模式下),然后您应该使用魔法命令,例如:
%run
和
%edit
检查这些功能的帮助 %run?
. 。这提供了明确的示例。
也可以看看 http://ipython.org/ipython-doc/stable/interactive/tutorial.html
不隶属于 StackOverflow