让 from module import function被称为 FMIF 编码风格。
让 import module被称为 IM 编码风格。
让 from package import module被称为 FPIM 编码风格。
为什么 IM + FPIM 被认为是一种比 FMIF 更好的编码风格
下面是一些让我更喜欢 FMIF 而不是 IM 的标准:
- 代码短: 它允许我使用较短的函数名,从而有助于坚持每行80列的约定。
- 可读性:
chisquare(...)看起来比 scipy.stats.stats.chisquare(...)更具可读性。虽然这是一个主观的标准,但我想大多数人都会同意。
- 易于重定向: 如果我使用 FMIF,并且由于某种原因在以后的某个时间想要重定向 python,从
alt_module而不是 module定义 function,那么我只需要修改一行: from alt_module import function。如果我要使用 IM,我需要更改许多行代码。
我知道 FPIM 在某种程度上可以抵消前两个问题,但是第三个问题呢?
我对 IM + FPIM 可能比 FMIF 更好的所有原因感兴趣,
但特别是,我有兴趣详细阐述以下几点 这里提到:
即时通讯的优点:
- 在测试中容易嘲笑/注入。(我不是很熟悉嘲笑,虽然我最近才知道这个词是什么意思。你能在这里展示一些代码来说明 IM 比 FMIF 更好吗?)
- 模块通过重新定义一些条目灵活变更的能力。(我一定是误解了什么,因为这似乎是 FMIF 比 IM 的优势。请看我支持 FMIF 的第三个理由。)
- 数据序列化和恢复的可预测和可控行为。(我真的不明白 IM 或 FMIF 的选择如何影响这个问题。请详细说明。)
- 我理解 FMIF“污染了我的名称空间”,但除了是一个听起来消极的短语之外,我并不认为这会以任何具体的方式损害代码。
附言。在写这个问题的时候,我收到了一个警告: 这个问题看起来很主观,很可能是封闭的。请不要关门。我不寻求主观意见,而是具体的编码情况下 IM + FPIM 是明显优于 FMIF。
非常感谢。