python中import*语句的自动清理

python中import*语句的自动清理,python,python-import,Python,Python Import,我在一个python-2代码库中工作,其中有很多表单语句 from Util import * 这不是好的做法,所以我想用 import Util 然后在必要时为变量/函数添加一个Util.all前缀 寻找所有需要添加前缀的位置将是一个艰苦的过程。我想知道是否有一种自动完成这项工作的好方法。问题是很好地识别引用。如果您知道没有名称冲突(即Util符号与其他符号具有相同的名称),那么您可以获取模块的目录并在符号之间循环。按照您所说的,检查程序并预编Util. 听起来您已经知道如何处理字符串扩充

我在一个python-2代码库中工作,其中有很多表单语句

from Util import *
这不是好的做法,所以我想用

import Util
然后在必要时为变量/函数添加一个
Util.
all前缀


寻找所有需要添加前缀的位置将是一个艰苦的过程。我想知道是否有一种自动完成这项工作的好方法。

问题是很好地识别引用。如果您知道没有名称冲突(即Util符号与其他符号具有相同的名称),那么您可以获取模块的目录并在符号之间循环。按照您所说的,检查程序并预编Util.

听起来您已经知道如何处理字符串扩充。您可以获得如下模块的符号目录:

import random
for random_name in dir(random):
    ...
为了让您了解情况,以下是随机_name值的列表:

BPF
LOG4
NV_MAGICCONST
RECIP_BPF
Random
SG_MAGICCONST
SystemRandom
TWOPI
WichmannHill
_BuiltinMethodType
_MethodType
__all__
__builtins__
__doc__
__file__
__name__
__package__
_acos
_ceil
_cos
_e
_exp
_hashlib
_hexlify
_inst
_log
_pi
_random
_sin
_sqrt
_test
_test_generator
_urandom
_warn
betavariate
choice
division
expovariate
gammavariate
gauss
getrandbits
getstate
jumpahead
lognormvariate
normalvariate
paretovariate
randint
random
randrange
sample
seed
setstate
shuffle
triangular
uniform
vonmisesvariate
weibullvariate

如果您愿意,您可以执行
import Util as u
,然后只需添加
u即可。
手动执行。这应该教会你永远不要再做
import*
:-)。@Jim有超过10万行代码,几十个不同的模块,从中可以完成
import*
。从理论上讲,似乎可以编写一个自动化工具来完成这项工作,不是吗?我只是开玩笑而已:-)。有些IDE不支持这种替代吗?当我使用它们时,我记得它们是这样做的。我不熟悉python IDE环境。希望有人带着一些知识顺道过来。事实上,有名称冲突,这是清理的动机之一。例如,某些局部变量的名称与模块中的变量冲突。在这种情况下,您需要额外的逻辑来识别每个新范围中的符号。解决方案远远超出了本网站的范围。您正在进入解析的第一级。。。虽然您可以通过让每个作用域以编辑程序可以使用的格式转储其符号目录来进行预处理。Yikes,但我从来没有听说过我的任何问题都超出了本网站的范围。Jim在评论中暗示,某些IDE可能可以为我做到这一点,这将是最好的。这不是问题——如果需要的答案包括基本的解析技术,那么我们就超出了这一范围。一个软件包会很好,但是要求一个非现场的软件包也是不可能的。然而,这只是一个可能的解决方案,所以我预计不会有人试图解决这个问题。