且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python 相当于 Ruby 的define_method?

更新时间:2022-04-01 05:11:00

函数是 Python 中的第一类对象,可以分配给类或实例的属性.执行与***示例相同的事情的一种方法是:

Functions are first-class objects in Python and can be assigned to attributes of a class or an instance. One way to do the same thing as in the Wikipedia example is:

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)