有没有可能立即重新加载Python模块?

Tho*_*mas 4 python import reload

在导入这些模块后立即重新加载这些模块是否有任何可想到的意义?这是我正在审查的代码让我惊讶:

import time
import sys
import os
import string
import pp
import numpy
import nrrd
reload(nrrd)
import smooth as sm
reload(sm)
import TensorEval2C as tensPP
reload(tensPP)
import TrackFiber4C as trackPP
reload(trackPP)
import cmpV
reload(cmpV)
import vectors as vects
reload(vects)
Run Code Online (Sandbox Code Playgroud)

编辑:我建议这可能会使.pyc文件的创建更有可能,但是有几个人指出这种情况每次都是第一次发生.

Kat*_*iel 6

这可能会导致某些事情发生; 显而易见的例子是导入时发生的副作用.例如,模块可以在每次导入时记录文件的时间和日期.

但是,这可能没有充分的理由.


Gar*_*ees 6

我注意到标准模块刚刚导入:它是重新加载的其他模块.我希望编写此代码的人希望能够轻松地重新加载整个包(以便获得他们的最新编辑).在输入所有这些冗余reload调用之后,程序员只需要编写

>>> reload(package)
Run Code Online (Sandbox Code Playgroud)

在翻译中提供最新信息,而不必输入

>>> reload(package.nrrd)
>>> reload(package.sm)
>>> reload(package.tensPP)
Run Code Online (Sandbox Code Playgroud)

所以请忽略你对写这个程序员的暴力行为的建议:他们远不是唯一一个重新加载依赖项的程序员.只是鼓励他们将重新加载转移到便利功能.