Python 打印.“文档”vs getattr(“内置打印”)。“文档”__
Python 打印.“文档”vs getattr(“内置打印”)。“文档”__,python,python-2.x,Python,Python 2.x,print.\uuuuu doc\uuuuuu输出: SyntaxError: invalid syntax 何处为 >>> getattr(__builtin__,"print").__doc__ 产出: 默认情况下,将值打印到流,或打印到sys.stdout。可选关键字参数: 文件:类似文件的对象(流);默认为当前的sys.stdout sep:在值之间插入字符串,默认为空格。 结束:最后一个值后追加的字符串,默认为换行符 有人能帮我理解为什么print.\uuuuu
print.\uuuuu doc\uuuuuu
输出:
SyntaxError: invalid syntax
何处为
>>> getattr(__builtin__,"print").__doc__
产出:
默认情况下,将值打印到流,或打印到sys.stdout
。可选关键字参数:
文件:类似文件的对象(流);默认为当前的sys.stdout
sep:在值之间插入字符串,默认为空格。
结束:最后一个值后追加的字符串,默认为换行符
有人能帮我理解为什么
print.\uuuuu doc\uuuuu
给出了一个语法错误,而不是打印文档字符串。print在Python 2中不是全局可用的函数,因此不能将其视为对象。这是一份声明
但是,在Python3或Python2中,带有from\uuuuuu future\uuuuu导入print\u函数
,而print
是一个普通函数,您可以读取\uuuuu文档
属性
见:
注意:由于名称print被识别为print语句,因此该函数通常不作为内置函数提供。要禁用该语句并使用print()函数,请在模块顶部使用以下future语句:
from __future__ import print_function
在Python2(确切地说是Python<2.6)中,print
与函数完全不同,因此没有docstring。在开始打印之前,它甚至不会计算所有参数:
>>> print 42, a
42
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>打印42,a
42
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
NameError:未定义名称“a”
在评估a
之前打印42
print
是一条语句,它要求0到N个逗号分隔的表达式跟在它后面,可以选择前面是构造>文件
,构造print.\uuuu doc\uuu
是非法的。它与if.\uuuuu doc\uuuu
或return.\uuuuu doc\uuuu
一样没有意义
但是,从Python2.6开始,
打印
函数在\uuuuuu内置
模块中可用,但默认情况下不使用,因为打印
语句与其冲突,除非print
语句的解析被from\uuuuu future\uuuuu导入print\u函数禁用
+1,否则我从未想到print
函数始终可用,而future import只是禁用了print
语句,而不是使打印
功能可用。
>>> print 42, a
42
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined