我在ipython shell中工作,经常需要重新加载包含我的函数的脚本文件。
在我的main.py中,我有:
def myreload(): 的execfile( “main.py”) 的execfile( “otherfile.py”)
如果我已经在同一个ipython会话中直接运行了execfile命令,那么调用myreload()就可以了。
但是,由于某种原因,如果会话是新鲜的,我只是调用了execfile(“main.py”),那么myreload()实际上并没有使otherfile.py中的函数可用。它不会引发任何错误。
有什么想法吗?
答案 0 :(得分:2)
函数创建一个新范围。 execfile()
在当前范围内运行脚本。你在做什么是行不通的。
答案 1 :(得分:1)
如果您想了解 ipython 的实际正确用法(即在交互模式下),那么您应该使用魔术命令,如:
%run
和
%edit
使用%run?
检查这些功能的帮助。这提供了明确的例子。
另见http://ipython.org/ipython-doc/stable/interactive/tutorial.html