ruby – 仅从实例中删除方法

前端之家收集整理的这篇文章主要介绍了ruby – 仅从实例中删除方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以从单个实例中删除方法
class Foo
  def a_method
    "a method was invoked"
  end
end

f1 = Foo.new
puts f1.a_method # => a method was invoked

我可以从已创建的对象中删除类a中的a_method:

class Foo
  remove_method(:a_method)
end

如果我从同一个对象调用a_method:

puts f1.a_method # => undefined method

如果我创建另一个对象:

f2 = Foo.new
puts f2.a_method # => undefined method

我怎样才能从特定的单个对象中删除方法

解决方法

对的,这是可能的:
f1.instance_eval('undef :a_method')

猜你在找的Ruby相关文章