print.__doc__输出:
SyntaxError: invalid syntax何地as
>>> getattr(__builtin__,"print").__doc__产出:
打印(值,.,sep=‘',end='\n',file=sys.stdout) 默认情况下,将值打印到流,或打印到
sys.stdout。可选关键字参数: file :一个类似文件的对象(流);默认为当前sys.stdout。 sep:值之间插入的字符串,默认为空格。 end:在最后一个值之后追加的字符串,默认为换行符。
有人能帮助我理解为什么print.__doc__给出语法错误而不是打印文档字符串吗?
发布于 2014-05-30 09:38:34
在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 defined42是在评估a之前打印出来的。print是一种语句,在它后面期望0到N的逗号分隔表达式,或者在构造>> file前面,构造print.__doc__是非法的。它和if.__doc__,或者return.__doc__一样没有意义。
但是,从Python2.6开始,print函数可以在__builtin__模块中使用,但在默认情况下不会使用,因为print语句与它发生冲突,除非from __future__ import print_function禁用了对print语句的解析。
发布于 2014-05-30 09:24:57
在Python 2中,Print并不是全局可用的函数,因此不能将它视为对象。这是一份声明。
但是,在Python3或使用from __future__ import print_function的Python2中,print是一个普通函数,您可以读取__doc__属性。
请参阅:https://docs.python.org/2/library/functions.html#print
注意:此函数通常不能作为内置功能使用,因为名称打印被识别为print语句。若要禁用该语句并使用print()函数,请在模块顶部使用以下未来语句: 从__future__导入print_function
https://stackoverflow.com/questions/23951085
复制相似问题