为什么我必须从标准库中导入某些内容,例如日期时间等,但不必导入 print()、len() 等?



为什么我编写程序时不能仅包含这些?我觉得某些standard library频繁使用诸如datetime之类的函数,以至于在需要时保持在importing上会很痛苦。

认为datetime经常被用来保证其内置在语言中。但是, i 几乎从未在我编写的代码中使用它。

将作为内置的内容包括在某种程度上是主观的,并且决定会随着时间的推移而改变。一些例子:

  • print语句被"降级"到Python 3中的内置功能。
  • reduce函数从内置功能降级到python 3中的库功能(在functools模块中)。
  • 在Python 2中,将apply函数作为内置功能删除;据我所知,在Python 3中,它根本没有添加到标准库中。
  • itertools模块中的某些功能被有效地提升为Python 3中的内置状态;例如,内置的map不再是功能,而是一个类似于itertools.imap的返回值的类。
  • 矩阵乘法以前仅由自定义库例程提供;在Python 3.5中,将具有相应魔术方法__matmul__的特殊操作员@添加到该语言中。(实施仍需要逐一添加,但是该框架已内置在语言中。)

最新更新