在Python中,一旦我在解释器会话中使用导入了模块X import X,并且模块在外部进行了更改,就可以使用来重新加载该模块reload(X)。然后,这些更改将在我的解释器会话中可用。
import X
reload(X)
我想知道当我使用模块从模块X导入组件Y时是否也可行from X import Y?
from X import Y
该语句reload Y不起作用,因为Y本身不是模块,而是模块内部的仅组件(在这种情况下为类)。
reload Y
是否有可能在不离开解释器会话(或导入整个模块)的情况下重新加载模块的各个组件?
编辑:
为了澄清起见,问题是关于从 模块X* 导入 类或函数Y 并在更改时重新加载,而不是从包X重新加载模块Y。 *
如果Y是一个模块(而X是一个包)reload(Y)就可以了-否则,您将明白为什么优秀的Python样式指南(例如,我的老板的)会说 除了* 模块 之外 , 不要 导入任何东西(这是许多重要原因之一) -但是人们仍然继续直接导入函数和类,无论我解释多少,这 都不 是个好主意;-)。 ***
reload(Y)