考虑以下示例:
import types
methods = ['foo', 'bar']
def metaMethod(self):
print "method", "<name>"
class Egg:
def __init__(self):
for m in methods:
self.__dict__[m] = types.MethodType(metaMethod, self)
e = Egg()
e.foo()
e.bar()
我应该写什么来代替"<name>"
,所以输出是
method foo
method bar
您必须以某种方式传递该参数,所以为什么不让
metaMethod
返回一个知道要打印什么的函数,而不是直接打印它呢?(我相信还有更多的方法可以做到这一点,这只是一种可能性。)运行此脚本打印
一种方法是使
metaMethod
成为类而不是函数。你知道吗相关问题 更多 >
编程相关推荐