我想在 python 中创建一个对象,其中对它下的任何方法的调用将被路由到单个方法实现。此外,这个单一方法中的代码应该使用调用处理的方法的名称或其返回值。
例如,调用其下的任何方法名称的对象将打印方法名称。
>>> the_object.a_made_up_method()
You have called method "a_made_up_method"
(顺便说一句,如果Mock
可以帮助,我全力以赴)
也许像
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"
这是另一个,似乎与*args
and一起使用**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