是否有 Ruby 的 define_method
的 Python 等效项,它允许动态生成类方法?
(可以在维基百科的 Ruby example code 中看到)
最佳答案
函数是 Python 中的一流对象,可以分配给类或实例的属性。做与维基百科示例相同的事情的一种方法是:
colours = {"black": "000",
"red": "f00",
"green": "0f0",
"yellow": "ff0",
"blue": "00f",
"magenta": "f0f",
"cyan": "0ff",
"white": "fff"}
class MyString(str):
pass
for name, code in colours.iteritems():
def _in_colour(self, code=code):
return '<span style="color: %s">%s</span>' % (code, self)
setattr(MyString, "in_" + name, _in_colour)
关于Python 相当于 Ruby 的 define_method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449244/