2015-08-14 29 views
1

我对python相当陌生,所以这可能是一个明显的问题,但我到处搜索(包括文档),并且我似乎无法获取python中内置函数的代码对象。举例来说,在我的PyCharm编辑,当我输入这个代码,它没有检测到任何错误:为什么不Python的内置函数有代码的对象?

print(getattr.__code__) 

但是当我运行它,它提供了一个AttributeError:

AttributeError: 'builtin_function_or_method' object has no attribute '__code__' 

是否有一个原因为什么python中的内置函数没有代码对象,并且这是我的IDE中的一个错误?

我使用Python 3

+0

要检测IDE将不得不执行代码的错误。它不知道代码是否具有破坏性,所以不会这样做。 –

+0

但随后将在“builtin_function_or_method”仍然有一个代码对象? – pasghetti

+1

如果对象是用C语言实现那么它不具有一个'__code__'属性。许多内置插件是C. –

回答

4

内置函数没有代码的对象,因为它们使用C:导入,而不是在Python。只有Python函数具有代码对象,因为代码对象是编译Python的字节码。 Exploring Python Code Objects是代码对象的很好的解释。

+0

感谢您的链接和简要说明。 – pasghetti

相关问题