我正在尝试使用inspect获取python打印的源代码,但它正在抛出错误。有人能告诉我如何得到python2.7打印语句的源代码吗。
inspect.getsourcefile(print)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-85-6158f5314751> in <module>()
----> 1 inspect.getsourcefile(print)
/usr/lib/python3.4/inspect.py in getsourcefile(object)
569 Return None if no way can be identified to get the source.
570 """
--> 571 filename = getfile(object)
572 all_bytecode_suffixes = importlib.machinery.DEBUG_BYTECODE_SUFFIXES[:]
573 all_bytecode_suffixes += importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES[:]
/usr/lib/python3.4/inspect.py in getfile(object)
534 return object.co_filename
535 raise TypeError('{!r} is not a module, class, method, '
--> 536 'function, traceback, frame, or code object'.format(object))
537
538 ModuleInfo = namedtuple('ModuleInfo', 'name suffix mode module_type')
TypeError: <built-in function print> is not a module, class, method, function, traceback, frame, or code object
In [86]: inspect.getsourcefile(builtin.print)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-86-2d1fb60aac58> in <module>()
----> 1 inspect.getsourcefile(builtin.print)
NameError: name 'builtin' is not defined
print
函数是用C语言实现的。这就是为什么不能用inspect
模块访问它的源代码。代码在这里:https://github.com/python/cpython/blob/2.7/Python/bltinmodule.c#L1580相关问题 更多 >
编程相关推荐