Получить ссылку на класс из ссылки на метод

У меня есть код:

class MyClass:
    def my_method(self):
        passs

method = MyClass.my_method

Могу я как-то из переменной method получить ссылку на класс MyClass?


Ответы (1 шт):

Автор решения: GrAnd

Можно при помощи inspect.

class MyClass:
    A = 111
    def my_method(self):
        pass

method = MyClass.my_method

import inspect
def get_class(method):
    return getattr(inspect.getmodule(method), 
                   method.__qualname__.split('.<locals>', 1)[0].rsplit('.', 1)[0],
                   None)
                       
cls = get_class(method)                       
print(cls, cls.A)
<class '__main__.MyClass'> 111

На английском SO есть не один тред на эту тему. Вот, к примеру.

→ Ссылка