我有一个实例 o
班级 O
。我想知道什么 o
有能力的。
o.methods
会给我很多方法。所以我通常这样做 o.methods - Object.instance_methods
。但这并不简洁。
我想做点什么 o.methods - o.class.superclass.instance_methods
。也就是说,只是定义的方法 O
本身。
还有其他方法吗?
我有一个实例 o
班级 O
。我想知道什么 o
有能力的。
o.methods
会给我很多方法。所以我通常这样做 o.methods - Object.instance_methods
。但这并不简洁。
我想做点什么 o.methods - o.class.superclass.instance_methods
。也就是说,只是定义的方法 O
本身。
还有其他方法吗?
您可以使用该方法 Module#instance_methods
:
o.class.instance_methods(false)
警告 文档似乎是错误的,它说:
没有争论, 要么 参数是假的,实例 返回mod中的方法,否则返回mod和mod中的方法 返回超类。
但实际上参数默认是 true
:
String.instance_methods.size
# => 184
String.instance_methods(false).size
# => 130