【发布时间】:2016-08-18 20:48:51
【问题描述】:
关于如何导入 Python 模块,特别是关于是使用绝对导入还是显式相对导入(例如here),有人提出了许多问题。 Python 软件基金会建议的导入样式可以在here 找到。简而言之,它建议绝对导入。
我写这个问题是因为我假设开发 matplotlib 的人知道他们在做什么。
鉴于此假设并假设我了解这两种导入之间的主要/明显差异,我将有兴趣了解影响 matplotlib 开发人员编写如下内容的它们之间的微小差异:
import matplotlib
import matplotlib.cbook as cbook
from matplotlib.cbook import mplDeprecation
from matplotlib import docstring, rcParams
from .transforms import (Bbox, IdentityTransform, TransformedBbox,
TransformedPath, Transform)
from .path import Path
这是artist.py 的开头,包含在matplotlib 模块中(即matplotlib.artist)。我在看 matplotlib-1.5.1。
我想将注意力集中在模块 matplotlib.cbook、matplotlib.transforms 和 matplotlib.path。这三个都是纯 Python 模块(即module_name.py 文件)。
为什么选择from matplotlib.cbook import mplDeprecation 而不是from .cbook import mplDeprecation 以及为什么首选from .path import Path 而不是from matplotlib.path import Path?
也许没有什么特别的原因,这些选择只是反映了不同开发者的不同风格;也许我缺少一些东西。
【问题讨论】:
标签: python matplotlib import module