self.method_name = method_name

def __getattr__(self, key):
    return Method(self.client, '.'.join((self.method_name, key)))

def __call__(self, **kwargs):
    print(self.method_name, kwargs)


class Client(object):

    def __getattr__(self, key):
        return Method(self, key)
Переопределение __getattr__ для поддержки динамических вложенных атрибутов