Я пытаюсь получить все определяемые пользователем имена методов из класса, например:
class MyClass:
def __init__(self, param1, param2):
pass
def one_method(self):
pass
def __repr__(self):
pass
def __str__(self):
pass
def __my_method_no_2(self, param2):
pass
def _my_method_no_3(self):
pass
До сих пор я пришел к следующему подходу:
import inspect
[name for name, _ in inspect.getmembers(MyClass, inspect.isroutine)
if name not in {'__init_subclass__', '__subclasshook__'} and
getattr(MyClass, name).__qualname__.startswith(MyClass.__name__)]
вывод:
['_MyClass__my_method_no_2',
'__init__',
'__repr__',
'__str__',
'_my_method_no_3',
'one_method']
это ожидаемый результат, но это выглядит "некрасиво" и даже не уверен, что правильный подход