Python具有元类的概念,如果我理解正确,允许您在构造时修改类的对象.您没有修改类,而是修改了要创建的对象然后进行初始化.
Python(至少从3.0开始,我相信)也有类装饰器的想法.如果我理解正确的话,类装饰器允许在声明它时修改类定义.
现在我相信Ruby中的类装饰器有一个相同的特性或功能,但我目前还没有意识到类似于元类的东西.我确信你可以通过一些函数轻松地抽取任何Ruby对象并按照你的意愿去做,但是语言中是否有一个像metaclass那样设置的功能?
那么,Ruby是否有类似于Python的元类的东西?
编辑我关于Python的元类.元类和类装饰器做的事情非常类似.它们都在定义时以不同的方式修改类.希望Python大师能够在Python中更好地解释这些功能.
但是类或类的父类可以实现一个__new__(cls[,..])
函数,该函数在初始化之前自定义对象的构造__init__(self[,..])
.
编辑此问题主要用于讨论和了解两种语言在这些功能中的比较.我熟悉Python但不熟悉Ruby并且很好奇.希望其他对这两种语言有相同问题的人会发现这篇文章很有帮助,也很有启发性.