class A
def p
puts "1"
end
end
a = A.new
a.p #=> "1"
class A
def p
puts "2"
end
end
a.p #=>"2"
这个ruby属性是否称为“Open Class”?还有其他语言有这个属性吗?
答案 0 :(得分:4)
是的,这在Ruby中称为 open class 。在我的脑海中,其他具有此属性的语言包括Python和Smalltalk。此外,即使他们没有类,在ECMAScript中改变原型对象,Self,Io和Ioke也会产生类似的效果。
答案 1 :(得分:1)
虽然有很多方法可以在Smalltalk中做到这一点,但我倾向于问你为什么要这样做并推动一个不同的解决方案。在运行时更改代码是使代码难以调试的一种方法。