小编Sea*_*ver的帖子

什么是Ruby与Python元类的模拟?

Python具有元类的概念,如果我理解正确,允许您在构造时修改类的对象.您没有修改类,而是修改了要创建的对象然后进行初始化.

Python(至少从3.0开始,我相信)也有类装饰器的想法.如果我理解正确的话,类装饰器允许在声明它时修改类定义.

现在我相信Ruby中的类装饰器有一个相同的特性或功能,但我目前还没有意识到类似于元类的东西.我确信你可以通过一些函数轻松地抽取任何Ruby对象并按照你的意愿去做,但是语言中是否有一个像metaclass那样设置的功能?

那么,Ruby是否有类似于Python的元类的东西?

编辑我关于Python的元类.元类和类装饰器做的事情非常类似.它们都在定义时以不同的方式修改类.希望Python大师能够在Python中更好地解释这些功能.

但是类或类的父类可以实现一个__new__(cls[,..])函数,该函数在初始化之前自定义对象的构造__init__(self[,..]).

编辑此问题主要用于讨论和了解两种语言在这些功能中的比较.我熟悉Python但不熟悉Ruby并且很好奇.希望其他对这两种语言有相同问题的人会发现这篇文章很有帮助,也很有启发性.

ruby python metaprogramming metaclass

10
推荐指数
2
解决办法
1528
查看次数

标签 统计

metaclass ×1

metaprogramming ×1

python ×1

ruby ×1