我想知道是否有一个 Ruby 方法调用只显示由调用它的 Ruby 对象定义的方法,而不是它的祖先类定义的所有方法,这就是 methods
似乎可以。
最佳答案
methods
有一个可选的 bool 参数,它指定是否还列出对象的类及其父类(super class)的方法,或者只列出对象的单例方法。所以你可以执行 obj.methods(false)
来只获取定义在 obj
上的单例方法。
如果你想要对象类定义的方法,而不是它的父类(super class)定义的方法,你可以通过调用对象类的 instance_methods(false)
来获得它,所以它是 obj .class.instance_methods(false)
.
关于ruby - 如何检查 Ruby 对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664578/