【发布时间】:2015-03-05 03:11:04
【问题描述】:
我可以使用inspect.getsource(obj)获取函数的源代码。
print(inspect.getsource(gcd))
它打印gcd 函数的源代码。当我尝试以下操作时,它会引发错误。
>>>print(inspect.getsource(print))
File "<stdin>", line 1
print(inspect.getsourcelines(print))
^
SyntaxError: invalid syntax
我可以得到 print 的源代码吗?如果是,如何?如果不是,为什么?
【问题讨论】:
-
不行,因为
print是一个函数,用C写的。inspect只能获取Python函数的源码。 -
您知道python是开源的,因此整个源代码都可以在线获得,对吧?您可以直接从存储库中获取它,而不是使用
inspect(这会引发语法错误,因为print是python 2 中的语言关键字,而不是python 3 中的函数)。 -
@Martin Pieters 这不是那个问题的重复。我无法获得打印的源代码。我只想看看 print 的实现,而不是所有的内置函数,我想知道这个错误的原因。怎么可能是那个问题的重复?
-
我会问一个不同的问题:为什么?您想了解有关
print的什么信息?顺便说一句,您可以使用from __future__ import print_function在python 2 中使用打印功能,但它的行为与print语句不同。
标签: python python-2.7 inspect