我一直在使用 Python 为我的研究进行计算。为了清理我糟糕的代码,我一直在阅读 Code Like a Pythonista: Idiomatic Python大卫古杰着。
在本文中,Goodger 建议不要对表单进行“通配符”导入
from module import *
我的代码使用了很多这些。我想清理我的代码,但我不确定如何清理。我很好奇是否有办法检查我在代码中使用的 module
中的名称。这样我就可以显式导入这些名称或用 module.name
替换这些名称。是否有专为完成此类任务而设计的工具?
最佳答案
使用像 pyflakes
这样的工具(无论如何你都应该使用它)来记录在你用 import 替换
。一旦您确定了从 from module import *
之后你的代码中的哪些名称变得未定义模块module
导入的名称的每个实例,您就可以评估是否要
- 对于从
module
导入的x
,始终使用import module
和module.x
。 - 如果模块名称很长,则使用
import module as m
和m.x
。 - 使用
from module import x, y, z
选择性地将一些名称从module
导入到模块命名空间中
以上三者并不互斥;作为一个极端的例子,你可以在同一个模块中使用所有三个:
import really.long.module.name
import really.long.module.name as rlmn
from really.long.module.name import obvious_name
really.long.module.name.foo() # full module name
rlmn.bar() # module alias
obvious_name() # imported name
全部在同一个代码中。 (我不推荐在同一个模块中使用所有三个模块。在整个单个模块中坚持使用完整的模块名称或别名,但是导入 common 没有坏处,直接使用明显的名称,并使用完全限定名称来表示更晦涩的模块属性。)
关于python - 有没有工具可以检查我从 "wildly"导入模块中使用了哪些名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403430/