环境:python 2.x
如果 print
是内置函数,为什么它不表现得像其他函数? print
有什么特别之处?
-----------start session--------------
>>> ord 'a'
Exception : invalid syntax
>>> ord('a')
97
>>> print 'a'
a
>>> print('a')
a
>>> ord
<built-in function ord>
>>> print
-----------finish session--------------
最佳答案
简短的回答是,在 Python 2 中,print
不是一个函数,而是一个 statement。 .
在所有版本的 Python 中,几乎一切都是对象。所有对象都有一个类型。我们可以通过应用 type
来发现对象的类型对象的函数。
使用解释器我们可以看到内置函数 sum
和 ord
正是 Python 的类型系统中的内容:
>>> type(sum)
<type 'builtin_function_or_method'>
>>> type(ord)
<type 'builtin_function_or_method'>
但是下面的表达式甚至不是有效的 Python:
>>> type(print)
SyntaxError: invalid syntax
这是因为名称print
本身就是一个关键字,如if
或return
。关键字不是对象。
更完整的答案是 print
可以是语句或函数,具体取决于上下文。
在 Python 3 中,print
不再是语句而是 function .
在 Python 2 中,您可以将模块中的 print
语句替换为 equivalent Python 3 的 print
函数,方法是在模块顶部包含以下语句:
from __future__ import print_function
此特殊导入仅适用于 Python 2.6 及更高版本。
请参阅我的回答中的文档链接以获得更完整的解释。
关于python 的 print 函数不完全是一个普通的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741598/