Python检查模块未检测到类方法

时间:2019-05-30 04:29:56

标签: python python-3.x debugging inspect

我正在尝试使用Python inspect模块获取类的所有方法。我知道我可以过滤inspect.getmembers来执行相同的操作,但是,似乎将成员方法列为函数而不是显式列出方法。

我需要将它们列为方法,以便我可以检查它们绑定或属于哪个类。

静态方法和非静态方法都被列为“函数”对象,而不是“方法”对象。

class a:
    def _foo(self):
        self.bar()

    def bar(self):
        print(inspect.stack()[1])

    def lol():
        pass

>>> a.lol
<function a.lol at 0x109b9ad08>
>>> a.bar
<function a.bar at 0x109b9ac80>
>>> inspect.getmembers(a)
[..., ('_foo', <function a._foo at 0x10b90ebf8>), ('bar', <function a.bar at 0x10b90ec80>), ...]

我希望_foo,bar和lol方法显示为method对象,而不是function对象。

0 个答案:

没有答案