为什么Python内置函数没有代码对象?

3

我是一个相对新手的Python程序员,所以这可能是一个很显然的问题。我已经到处查找(包括官方文档),但似乎无法获取Python内置函数的代码对象。例如,在我的PyCharm编辑器中,当我输入此代码时,它不会检测到任何错误:

print(getattr.__code__)

但是当我运行它时,它会给出一个AttributeError错误:
AttributeError: 'builtin_function_or_method' object has no attribute '__code__'

在Python中内置函数没有代码对象的原因是什么?这是否是我的IDE中的一个错误?
我正在使用Python 3。

为了检测错误,集成开发环境需要执行代码。然而它无法确定代码是否会造成破坏,因此不会执行。 - Peter Wood
但是,"builtin_function_or_method" 仍然会有一个代码对象吗? - pasghetti
1
如果对象是用C实现的,则它没有__code__属性。许多内置函数是用C实现的。 - Peter Wood
1个回答

4
内置函数没有代码对象,因为它们是用C而不是Python实现的。只有Python函数才有代码对象,因为代码对象是编译的Python字节码。探索Python代码对象 是关于代码对象的好解释。

感谢提供链接和简要解释。 - pasghetti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接