我有一个类o
的实例O
。我想知道o
能够做什么。
o.methods
会给我很多方法。所以我通常做o.methods - Object.instance_methods
。但这并不简洁。
我想做o.methods - o.class.superclass.instance_methods
之类的事情。也就是说,只是O
本身定义的方法。
还有其他方法吗?
答案 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