ruby元编程 - 获取类的方法名称和参数信息

sam*_*207 3 ruby methods metaprogramming class

我想在对象中获取类方法.请参阅以下示例我有一个类"user.rb"

class User
  def say_name

  end

  def walk(p1)

  end

  def run(p1, p2)

  end
end
Run Code Online (Sandbox Code Playgroud)

我写了下面的代码

require 'user.rb'

a = User.new

arr = a.public_methods(all = false)
Run Code Online (Sandbox Code Playgroud)

上面的代码将返回方法名称,但我的问题是我想获取带参数的方法名称

def def run(p1, p2)

end
Run Code Online (Sandbox Code Playgroud)

我想获取方法名称("run")及其参数名称(p1,p2)或参数count(2)

有人可以帮助我,提前谢谢

干杯

sameera

Gis*_*shu 5

User.new.method(:run).arity   # => 2
Run Code Online (Sandbox Code Playgroud)

  • 或者,如果你不想创建一个实例:`User.instance_method(:run).arity#=> 2` (9认同)