Python 相当于 Ruby 的 define_method?

标签 python ruby

是否有 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/

相关文章:

javascript - 使用 Django + react-router 找不到 404 页面

python - 从 Elasticsearch 导出的CSV文件中的可读列名称?

ruby - 停止 kill 命令

ruby-on-rails - 月/日的慢性解析

ruby - 为什么 Ruby 的默认参数值没有分配给 nil 参数?

python - 当我通过 SSH 连接到服务器时,如何获取所有 .log 和 .txt 文件

python - 在 View 中显示时,项目会重复

ruby - 最快的 Ruby 记录器实现是什么?

ruby - 模块命名空间的异常使用

python - 在python中将数据从文件导入到字典