在二傳手:紅寶石 - 如何刪除鑑於一類這樣的對象
class B
class << self
attr_accessor :var
end
end
想我不能修改B類的原始源代碼我怎麼可能去上去除的setter類變量var?我嘗試過使用類似B.send(「unset_method」,「var =」)的東西,但這不起作用(也不會執行remove_method,或者用var =方法覆蓋該方法,但不會執行任何操作)。有任何想法嗎?
在二傳手:紅寶石 - 如何刪除鑑於一類這樣的對象
class B
class << self
attr_accessor :var
end
end
想我不能修改B類的原始源代碼我怎麼可能去上去除的setter類變量var?我嘗試過使用類似B.send(「unset_method」,「var =」)的東西,但這不起作用(也不會執行remove_method,或者用var =方法覆蓋該方法,但不會執行任何操作)。有任何想法嗎?
class <<B ; remove_method :var= ; end
嘗試:
class B
class << self
undef var=
end
end
您可能要remove_method改用:
class B
class << self
remove_method :var=
end
end
要查看的差異,請訪問: http://www.nach-vorne.de/2008/2/28/undef_method-remove_method/
這會導致錯誤 NameError:method'var ='not defined in Class – 2013-07-30 20:12:02
真棒!我忘了做這樣的事情! – 2010-03-22 17:25:47