【发布时间】:2016-04-12 13:29:30
【问题描述】:
我正在寻找一种方法来使用未在该类中定义但动态处理的类的方法。举个例子,我想实现的是从
class Hello:
def aaa(self, msg=""):
print("{msg} aaa".format(msg=msg))
def bbb(self, msg=""):
print("{msg} bbb".format(msg=msg))
if __name__ == "__main__":
h = Hello()
h.aaa("hello")
h.bbb("hello")
# hello aaa
# hello bbb
可以在类中使用aaa 和bbb(和其他)而无需显式定义它们。对于上面的示例,这将是一个构造,它接收所用方法的名称(例如aaa)并相应地格式化消息。
换句话说,一种“通配符方法”,它本身会处理其名称并根据名称执行条件操作。在伪代码中(复制上面的例子)
def *wildcard*(self, msg=""):
method = __name__which__was__used__to__call__me__
print("{msg} {method}".format(msg=msg, method=method))
这样的结构可能吗?
【问题讨论】: