Казалось бы, это самый простой подход для удовлетворения ваших требований, как указано:
webmethods = {}
def webmethod(f):
webmethods[f.__name__] = f
return f
, а в WebmethodBaseClass
,
def post(self, methodName):
webmethods[methodName](self, "kapow")
Я подозреваю, что вы хотите что-то другое (например, отдельные пространства имен для разных подклассов по сравнению с единым глобальным webmethods
словарем ...?), Но без дополнительной информации трудно угадать, насколько ваши желания отличаются от ваших спецификаций - может быть, вы расскажете нам, как этот упрощенный подход не позволяет достичь некоторых ваших желаний, поэтому он может быть дополнен в соответствии с тем, что вы на самом деле хотите.