【发布时间】:2023-02-11 02:44:41
【问题描述】:
请考虑以下代码
class Execute
def self.inherited(klass)
puts "Class Inherited: #{klass}"
klass.run
end
def self.run
puts "Running Instance Methods"
instance_methods(false).each do |m|
if m.to_s.start_with?("test_")
puts "Executing Method: #{m}"
new.send(m)
end
end
end
end
puts "Before class definition"
class Raja < Execute
def test_1
puts 'test_1'
end
def test_2
puts 'test_2'
end
def test_3
puts 'test_3'
end
end
puts "After class definition"
我目前正在尝试通过实例化父类中的对象来访问 test_1、test_2 和 test_3 方法。检查程序后,可以理解我正在执行的操作。尽管如此,问题还是出现了,因为调用 instance_methods 方法会返回一个空数组,这与其提供实例方法名称(即 test_1、test_2 和 test_3)的预期行为相反。我不知道为什么会出现这种差异,非常感谢为解决此问题提供的任何帮助
【问题讨论】:
标签: ruby