为什么打印列为内置?

时间:2015-11-20 18:01:46

标签: python python-2.7

在阅读python2.7中dir(__builtins__)下列出的对象时,我注意到keyword print就在那里。

现在在python3.5下我可以看到printexec现在是对象。

这是什么原因?为什么甚至在__builtins__下列出它?特别是这个关键字,如果它从未在那里分组,它会有什么不同。似乎import可能还有一个案例被列在那里?

1 个答案:

答案 0 :(得分:5)

print位于__builtins__,因为确实存在print内置函数。如果您执行from __future__ import print_function,则print关键字已停用,print会引用内置关键字。

execimport不在__builtins__。您很可能将它们与内置函数eval__import__混合在一起。

暂且不说:不要使用__builtins__。它是一个实现细节,它的价值在不同的环境中是不同的。如果您希望模块包含所有内置名称,请在Python 3中使用import __builtin__import builtins