Ruby 仅当前类的实例方法列表
我有一个类Ruby 仅当前类的实例方法列表,ruby,Ruby,我有一个类o的实例o。我想知道o能做什么 o.methods会给我很多方法。所以我通常使用o.methods-Object.instance\u方法。但这并不简洁 我想做一些类似于o.methods-o.class.superclass.instance\u methods。也就是说,只是O本身中定义的方法 还有其他方法吗?您可以使用以下方法: 警告文档似乎有误,它说: 没有参数,或参数为false,实例 返回mod中的方法,否则返回mod和mod中的方法 返回超类 但实际上,默认情况下该参数为
o
的实例o
。我想知道o
能做什么
o.methods
会给我很多方法。所以我通常使用o.methods-Object.instance\u方法。但这并不简洁
我想做一些类似于o.methods-o.class.superclass.instance\u methods
。也就是说,只是O
本身中定义的方法
还有其他方法吗?您可以使用以下方法:
警告文档似乎有误,它说:
没有参数,或参数为false,实例
返回mod中的方法,否则返回mod和mod中的方法
返回超类
但实际上,默认情况下该参数为true
:
String.instance_methods.size
# => 184
String.instance_methods(false).size
# => 130
o.methods(false)
有效吗?@SergioTulentsev不,这不起作用,因为methods
的false
参数的含义是只列出单例方法,例如'foo.methods(false)#=>[]
。
String.instance_methods.size
# => 184
String.instance_methods(false).size
# => 130