我想知道如何列出模块中的所有方法,但不包括继承的方法.

如.

module Software
  def exit
    puts "exited"
  end
end

puts Software.methods

将不仅列出exit,还列出所有继承的方法.

可以只列出出口吗?

谢谢

推荐答案

事实上,Software.methods会列出exit.Software.instance_methods将列出exit以及任何继承的方法(在本例中,这算不了什么,因为除非包含另一个模块,否则模块不会继承任何方法).Software.instance_methods(false)将只列出Software中定义的方法.

Ruby相关问答推荐

扫描不带空格的字符串中的单词

Rails 7 - 访问连接模型生成新查询

Ruby:这两种混入模块方法是否等效?

为什么数组中的 splat 如此昂贵?

当我在 Ruby 中围绕最后一个字符拆分时,如何拆分字符串?

在 ruby​​ 中提取文档中的主题标签和部分

创建线程安全的临时文件名

如何使 Sinatra 通过 HTTPS/SSL 工作?

Kernel#gets try 读取文件而不是标准输入

在Ruby中将关键字与常规参数混合?

将ruby数组转换为连续对数组

用零填充数字

线程安全:Ruby 中的类变量

如何在 ruby​​ net/http 中实现 cookie 支持?

动态设置 Ruby 对象的属性

相当于 Ruby 中的通过

用 Ruby 解析 XML

在 Ruby 中获取本月的最后一天

将 lambda 作为块传递

如何在Ruby中将字符串拆分为仅具有给定字符的两部分?