Используйте метод класса, а не метод экземпляра с тем же именем
У меня есть следующий фрагмент:
class Meta(type):
def __getattr__(self, name):
pass
class Klass(object):
__metaclass__ = Meta
def get(self, arg):
pass
Теперь, если я сделаю:
kls = Klass()
kls.get('arg')
все работает как положено (метод экземпляраget
называется).
Но если я сделаю:
Klass.get('arg')
снова метод экземпляра найден и дано исключение, так как он рассматривается как несвязанный метод.
Как я могу позвонитьKlass.get('arg')
пройти через__getattr__
определен в метаклассе? Мне это нужно, потому что я хочу проксировать все методы, вызываемые в классе, к другому объекту (это будет сделано в__getattr__
).