1. ホーム
  2. python

[解決済み] メソッドを定義したクラスを取得する

2022-10-26 11:33:31

質問

Pythonでメソッドを定義したクラスを取得するにはどうしたらよいですか?

以下の例で、"を表示させたいのですが。 __main__.FooClass と表示させたい。

class FooClass:
    def foo_method(self):
        print "foo"

class BarClass(FooClass):
    pass

bar = BarClass()
print get_class_that_defined_method(bar.foo_method)

どのように解決するのですか?

import inspect

def get_class_that_defined_method(meth):
    for cls in inspect.getmro(meth.im_class):
        if meth.__name__ in cls.__dict__: 
            return cls
    return None