python - 导入和名称绑定最佳实践
问题描述
这与:Importing modules in Python - best practice 密切相关,但下面的案例并没有真正详细讨论。
如果我们有一个模块coordinates
,它定义了一个类Coordinates
和几个实用函数来使用该Coordinates
类型。做以下两件事的推荐方法是什么:
- 导入完整的
coordinates
模块 - 绑定
Coordinates
到coordinates.Coordinates
我现在看到的两个选项:
import coordinates
from coordinates import Coordinates
但这似乎有点奇怪,另一方面,我看到的另一个解决方案似乎也不是很干净:
import coordinates
Coordinates = coordinates.Coordinates
这两种方法中哪一种是最常用或首选的方法?或者也许这两个都不应该使用,在这种情况下,什么是更好的解决方案?
我正在考虑但我希望避免的另一种选择是在引用的问题中提出的一种选择:import coordinates as crd
然后简单地使用crd.Coordinates
而不是Coordinates
. 我想避免这种情况的原因是因为它会降低我的代码的可读性,特别是当我使用coordinates
模块中的函数时。coordinates.Coordinates
对于这种替代方案,即使看起来多余,我也可能更愿意简单地调用。
我还考虑过让我的模块可调用以coordinates()
自动调用Coordinates()
,但我也不确定它是否真的是一个好的解决方案(而且我不确定在这种情况下如何处理文档)。
解决方案
这是个人喜好的问题,但对于我自己来说,我会选择:
from coordinates import Coordinates
除非,也就是说,您从coordinates
模块中使用了三个或四个以上的东西,或者您从中导入的名称之一与您从其他地方使用的名称发生冲突。在任何一种情况下,请选择
import coordinates
推荐阅读
- kubernetes - Pod 不通过 service 与其他 pod 通信
- prolog - 如何在 Prolog 中输出我的用户输入知识库的答案
- ruby - Sinatra 初始化命名空间控制器
- png - 如果您在打开图像时修改图像会发生什么?
- javascript - 我无法让我的 HERE Map javascript 代码在 Thingsboard 小部件中工作
- python - 无法读取行中有分号的 CSV 文件。无法在 pandas 中使用 drop 函数删除行
- git - 如何仅远程修复 git 重复文件夹名称
- tensorflow - 多个 MultiRNNCell 的行为?
- google-sheets - 用 FALSE 替换 0,用 TRUE 替换 1
- reactjs - 检测容器内 div 的点击