是否可以编写可以告诉我何时定义Ruby类的内容?
答案 0 :(得分:2)
是!
class Object
def self.inherited(base)
puts "#{base} inherited from object"
end
end
class Animal
end
class Cat < Animal
end
运行上面的代码会打印以下内容:
Animal inherited from object
Cat inherited from object
基本上,只要定义了一个继承自定义的类的类,就会触发self.inherited
回调。把它放在Object
那就是任何类! (虽然可能有一些特殊情况例外,我现在想不到。)
我应该添加免责声明,尽管有可能这样做(因为Ruby作为一种语言有多棒),是否建议这样做,特别是在用于生产用途的代码中,我是不太确定。嗯,实际上,我确定。这将是个坏主意。