我如何检查Ruby对象的方法?

pic*_*rdo 20 ruby introspection

我想知道是否有一个Ruby方法调用只显示它调用的Ruby对象定义的方法,而不是它的祖先类定义的所有方法,这methods似乎是做的.

sep*_*p2k 33

methods接受一个可选的布尔参数,该参数指定是否还列出来自对象类及其超类的方法,或仅列出对象的单例方法.所以你obj.methods(false)只能得到定义的单例方法obj.

如果你想要对象的类定义的方法,而不是它们的超类定义的方法,你可以通过调用instance_methods(false)对象的类来获得它,所以它是obj.class.instance_methods(false).