如何获得定义方法的类?
我已经找到了如何查找后代和ansestors的方法:查找Ruby中一个类的所有后代
但这并不一定会让我得到定义类(实际上是最后一个定义类)。
我已经找到了如何获取调用类: Ruby Inheritance Get Caller Class Name
但我要相反。我想如何获得定义类。
我也试过了Module.nesting。在这种情况下,这就是我想要的,但是我担心,在我没有最终控制权的更大的代码库中,这将是不一致的并且不可接受的。
puts RUBY_VERSION
# Test class vs super.
class Super
def test_func
puts "#{self.class}, #{ __method__}"
end
end
class Child < Super
def test_func2
self.test_func
end
end
Child.new.test_func
Run Code Online (Sandbox Code Playgroud)
我曾希望:
1.8.7
超级,test_func
但是得到了:
1.8.7
孩子,test_func
ruby ×1