在阅读python2.7中dir(__builtins__)中列出的对象时,我注意到关键字 print在那里。
在python3.5下面,我可以看到print和exec现在是对象。
这是什么理由呢?为什么一开始就把它列在__builtins__下面?具体来说,这个关键字,特别是,它会有什么不同,如果它从来没有分组在那里。似乎import也有理由在那里上市?
发布于 2015-11-20 18:12:58
print在__builtins__中,因为实际上有一个内置的print函数。如果您执行from __future__ import print_function,则禁用print关键字,print引用内建。
exec和import不在__builtins__。您很可能将它们与内置函数eval和__import__混为一谈。
顺便提一句:不要使用__builtins__。这是一个实现细节,它的价值在不同的上下文中是不同的。如果您想要包含所有内置名称的模块,请在Python3中使用import __builtin__或import builtins。
https://stackoverflow.com/questions/33833196
复制相似问题