gpt4 book ai didi

python - 有没有工具可以检查我从 "wildly"导入模块中使用了哪些名称?

转载 作者:太空狗 更新时间:2023-10-30 02:02:41 25 4
gpt4 key购买 nike

我一直在使用 Python 为我的研究进行计算。为了清理我糟糕的代码,我一直在阅读 Code Like a Pythonista: Idiomatic Python大卫古杰着。

在本文中,Goodger 建议不要对表单进行“通配符”导入

from module import *

我的代码使用了很多这些。我想清理我的代码,但我不确定如何清理。我很好奇是否有办法检查我在代码中使用的 module 中的名称。这样我就可以显式导入这些名称或用 module.name 替换这些名称。是否有专为完成此类任务而设计的工具?

最佳答案

使用像 pyflakes 这样的工具(无论如何你都应该使用它)来记录在你用 import 替换 from module import * 之后你的代码中的哪些名称变得未定义模块。一旦您确定了从 module 导入的名称的每个实例,您就可以评估是否要

  1. 对于从 module 导入的 x,始终使用 import modulemodule.x
  2. 如果模块名称很长,则使用import module as mm.x
  3. 使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com