python 根据对象和方法名,返回提供这个方法的定义的类

def find_defining_class(obj, method_name):
    for ty in type(obj).mro():
        if method_name in ty.__dict__:
            return ty
    return None

mro方法用来获得用于搜索调用方法的类对象列表