0

我想在 python 中创建一个对象,其中对它下的任何方法的调用将被路由到单个方法实现。此外,这个单一方法中的代码应该使用调用处理的方法的名称或其返回值。

例如,调用其下的任何方法名称的对象将打印方法名称。

>>> the_object.a_made_up_method()
You have called method "a_made_up_method"

(顺便说一句,如果Mock可以帮助,我全力以赴)

4

1 回答 1

4

也许像

class My():
    def __getattr__(self, name):
        def method():
            print 'You have called method "{}"'.format(name)
        return method

>>> a = My()

>>> a.a_made_up_method()
You have called method "a_made_up_method"

这是另一个,似乎与*argsand一起使用**kwargs

class My():
    def __getattr__(self, name):
        return self.method(name)
    def method(self, name):
        def dostuff(*args, **kwargs):
            print "I'm called as {}!".format(name)
            print args, kwargs
        return dostuff
于 2012-10-01T10:14:30.113 回答