ruby - 如何检查 Ruby 对象的方法?

标签 ruby introspection

我想知道是否有一个 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/

相关文章:

python - 为什么 python inspect.isclass 认为一个实例是一个类?

perl - 如何在 Perl 中探索一个对象?

ruby - Ruby 2 中的惰性求值

arrays - 在 Ruby 中生成大量独特的 token

c - 使用 CMake 生成 SWIG 绑定(bind)

ios - Swift 元类型不一致

javascript - 检索当前的 javascript 文件名和行号

javascript - Rails 和 React : TypeError: Cannot call method 'map' of undefined

javascript - ruby on Rails 中使用 sweetalert 删除方法

ruby 在远程机器上运行命令