0

我在python3中有以下场景

from phase_2d import phase_2d#其中phase_2d是一个python文件phase_2d.py

然后我编辑这个文件并想要测试更改,而不必退出 python 并重新加载所有内容。

imp.reload(phase_2d)

返回错误“类型:错误:reload() 参数必须是模块”

4

1 回答 1

0

由于您从模块 phase_2d 导入了 phase_2d 类,因此当您调用 imp.reload(phase_2d) 时,传递给 reload 命令的 phase_2d 是类,而不是模块。为了使用 reload 命令,您必须导入实际的模块,或者获取对该模块的引用。例如,您可以执行以下操作:

import phase_2d
from phase_2d import phase_2d as p2d
...
imp.reload(phase_2d)

或者,如果您真的只想从模块中导入单个类,您可以使用检查模块从类中获取父模块(http://docs.python.org/2/library/inspect.html#inspect .getmodule )

import inspect
from phase_2d import phase_2d
....
imp.reload(inspect.getmodule(phase_2d))
于 2014-02-13T18:45:36.320 回答