2017-09-30 39 views
-1

为什么在编写程序时不能包含这些内容?我觉得像datetime这样的函数经常被使用,所以只要需要,它就很难继续使用importing为什么我必须从标准库中导入某些东西,如datetime等,但不必导入print(),len()等...?

+2

因为大多数代码需要有内置插件,而其余的可分组在图书馆。这是一个平衡的行为;不要让名称空间混乱,因为这些名称空间并不总是需要的,并且很容易访问您几乎总是需要的东西。 –

+0

有人可能会争辩说'datetime'虽然不像print,len或map那么重要,所以它值得拥有自己的模块 – Sweeper

+0

为什么他们不在瑞士军刀上添加蝶形网? –

回答

1

认为datetime经常使用足以保证它是内置于该语言。但是,我很少在编写代码时使用它。

什么包含作为内置是有点主观的,并且决定可以随时间而改变。一些例子:

  • print声明在Python“降级”到内置功能3.
  • reduce功能是由一个内置的功能降级到库函数(functools模块中)在Python 3中。
  • apply函数作为Python 2中的内置函数被删除;据我所知,它并没有在Python 3中添加到标准库中。
  • itertools模块中的某些函数在Python 3中被有效地提升为内置状态;例如,内置map不再是函数,而是其实例类似于返回值itertools.imap的类。
  • 矩阵乘法以前仅由自定义库例程提供;在Python 3.5中,一个特殊的运算符@与相应的魔术方法__matmul__被添加到该语言中。 (该实施仍然需要在一个类的类基础上增加,但框架是建立在语言中。)
相关问题