0

我已经定义了一个模块 Vehicle 使得

module Vehicle
  def initialize(make, model)
  end

  def start
  end

  def stop
  end
end

我想使用 Module#instance_methods 和 Module#instance_method 来检查 Vehicle 中定义的实例方法

Vehicle.instance_methods.each do |method|
  Vehicle.instance_method(method).parameters
end

问题是 Vehicle#instance_methods 只返回 [:start, :stop]。如何检查初始化方法?

4

1 回答 1

2

initialize由于它是私有的,因此不会出现在公共实例方法列表中:

>> Vehicle.instance_methods
=> ["start", "stop"]
>> Vehicle.private_instance_methods
=> ["initialize"]

所以,你可以做

Vehicle.instance_method("initialize").parameters
于 2012-08-26T18:43:40.033 回答