我有一个样板类,它将一些操作委托给一个参考类。它看起来像这样:
class MyClass():
def __init__(self, someClass):
self.refClass = someClass
def action1(self):
self.refClass.action1()
def action2(self):
self.refClass.action2()
def action3(self):
self.refClass.action3()
这是 refClass:
class RefClass():
def __init__(self):
self.myClass = MyClass(self)
def action1(self):
#Stuff to execute action1
def action2(self):
#Stuff to execute action2
def action3(self):
#Stuff to execute action3
我想使用 Python 元编程来使它更优雅和可读,但我不确定如何。
我听说过setattr和getattr,我想我可以做类似的事情
class MyClass():
def __init__(self, someClass):
self.refClass = someClass
for action in ['action1', 'action2', 'action3']:
def _delegate(self):
getattr(self.refClass, action)()
然后我知道我需要从某个地方执行此操作,我猜:
MyClass.setattr(action, delegate)
我只是不能完全掌握这个概念。我了解有关不重复代码以及使用带有函数式编程的 for 循环生成方法的基础知识,但是我不知道如何从其他地方调用这些方法。嘻嘻!