导入和名称绑定最佳做法

时间:2019-04-18 12:20:12

标签: python class import module

这与Importing modules in Python - best practice 密切相关,但是以下情况并未真正详细讨论。

如果我们有一个模块coordinates定义了一个类Coordinates和几个实用程序函数来使用Coordinates类型。建议执行以下两件事的方法是什么:

  1. 导入完整的coordinates模块
  2. Coordinates绑定到coordinates.Coordinates

我现在看到的两个选项:

import coordinates
from coordinates import Coordinates

但这似乎有点奇怪,另一方面,我看到的另一种解决方案也不是很干净:

import coordinates 
Coordinates = coordinates.Coordinates

这两个中的哪个是最常用或首选的方式?或者也许不应该同时使用这两种方法,那么哪种方法更好呢?

我正在考虑的另一种选择是,我希望避免的是所引用问题中的一个建议:import coordinates as crd,然后仅使用crd.Coordinates而不是Coordinates。之所以要避免这种情况,是因为它会使我的代码可读性降低,尤其是当我使用coordinates模块中的函数时。对于这种选择,我可能更愿意简单地调用coordinates.Coordinates,即使这看起来很多余。

我还考虑过making my module callable使coordinates()能够自动呼叫Coordinates(),但我也不确定这是否是一个很好的解决方案(而且我不确定如何在这种情况下,请处理文档)。

1 个答案:

答案 0 :(得分:0)

这是个人喜好问题,但对于我自己,我会选择:

from coordinates import Coordinates

除非,也就是说,您正在使用coordinates模块中的三到四个东西,或者您要从其中导入的名称之一与您使用的名称发生冲突正在从其他地方使用。在任何一种情况下,请选择

import coordinates