我想知道如何列出模块中的所有方法,但不包括继承的方法。
例如
module Software
def exit
puts "exited"
end
end
puts Software.methods
不仅列出退出,而且列出所有继承的方法。
是否可以列出退出?
由于
答案 0 :(得分:45)
实际上Software.methods
不列出exit
。 Software.instance_methods
将列出exit
以及任何继承的方法(在这种情况下,这些方法都没有,因为除非包含另一个模块,否则模块不会继承任何方法)。 Software.instance_methods(false)
只会列出Software
中定义的方法。
答案 1 :(得分:23)
Software.public_instance_methods
似乎适用于您的示例。