仅当前类的实例方法列表

时间:2013-07-25 13:17:09

标签: ruby

我有一个类o的实例O。我想知道o能够做什么。

o.methods会给我很多方法。所以我通常做o.methods - Object.instance_methods。但这并不简洁。

我想做o.methods - o.class.superclass.instance_methods之类的事情。也就是说,只是O本身定义的方法。

还有其他方法吗?

1 个答案:

答案 0 :(得分:16)

您可以使用方法Module#instance_methods

o.class.instance_methods(false)


警告文档似乎有误,它说:

  

没有参数,或参数为false ,实例   返回mod中的方法,否则返回mod和mod中的方法   返回超类。

但实际上参数默认为true

String.instance_methods.size
# => 184
String.instance_methods(false).size
# => 130