Ruby 仅从实例中删除方法

Ruby 仅从实例中删除方法,ruby,Ruby,是否可以从单个实例中删除方法 class Foo def a_method "a method was invoked" end end f1 = Foo.new puts f1.a_method # => a method was invoked 我可以使用以下方法从已创建的对象的类an中删除_方法: class Foo remove_method(:a_method) end 如果从同一对象调用_方法: puts f1.a_method # => und

是否可以从单个实例中删除方法

class Foo
  def a_method
    "a method was invoked"
  end
end

f1 = Foo.new
puts f1.a_method # => a method was invoked
我可以使用以下方法从已创建的对象的类an中删除_方法:

class Foo
  remove_method(:a_method)
end
如果从同一对象调用_方法:

puts f1.a_method # => undefined method
如果创建另一个对象:

f2 = Foo.new
puts f2.a_method # => undefined method
如何仅从特定的单个对象中删除方法?

是的,有可能:

f1.instance_eval('undef :a_method')

你能在你的用例中提供更多的信息吗?重新定义该实例的方法来抛出异常可能会更容易。