如何检查python方法的源代码?


问题内容

简而言之,假设我有一个字符串'next'

next = "123rpq"

我可以将str方法.isdigit()应用于'next'。所以我的问题是如何检查此方法的实现。因此,是否有inspect.getsource(somefunction)想要获得“方法”源代码的东西?

更新:请参阅'next'下面有关变量名称的注释。


问题答案:

对于模块,类,函数和其他一些对象,您可以使用inspect.getfileinspect.getsourcefile。但是,对于内置对象和方法,这将导致TypeError。正如C0deH4cker提到的那样,内置对象和方法是用C实现的,因此您必须浏览C源代码。isdigit是内置字符串对象的方法,该方法在Python源代码目录中的文件stringobject.c中实现Objects。此isdigits方法从此文件的3392行开始实施。另见我的答案在这里,以一个类似但更普遍的问题。