Именно так, как написано в ОП посте - боюсь, что нельзя.
Но есть варианты.
1. Передавать в декоратор параметр - словарь, куда будут складываться методы. Так сделано в комменте П. Ерошевича.
2. Использовать пару декораторов, один для методов, другой для класса. Первый ставит некоторую метку на методы (нестандартный атрибут), второй проверяет __dict__ класса и складывает в словарь методы с этим атрибутом.
Например:
def methoddecorator(method):
setattr(method, 'super_secret_attribute', True) #ставим метку на метод
return method
def classdecorator(cls):
methods = dict()
for name, obj in cls.__dict__.items():
#ищем вызываемые объекты с меткой. Можно уточнить, конечно.
if callable(obj) and getattr(obj, 'super_secret_attribute', None) is True:
delattr(obj, 'super_secret_attribute') #удаляем метку
methods[name] = obj #запоминаем метод
setattr(cls, 'methods', methods) #записываем словарь меченых методов в поле класса
return cls
@classdecorator
class Cls:
#этот метод попадёт в Cls.methods
@methoddecorator
def method1(self):
pass
#этот метод НЕ попадёт в Cls.methods
def method2(self):
pass