Ruby类方法参考

时间:2017-09-11 00:01:07

标签: ruby reflection

在Ruby中,我们可以轻松地引用一个方法,并在类似的范围内传递回调类似的方式:

my_method = method(:method_name)

您如何引用在另一个类上定义的类方法?

所以,如果我有:

class MyClass
  class << self
      def my_method
        // ... do stuff
      end
  end
end

如何在另一个类中引用该方法以在method(...)调用中使用?

2 个答案:

答案 0 :(得分:0)

以一些想法回答了我自己的问题:

在这种情况下,您根本不需要>>> import numpy as np >>> a = np.array([1, 2, 3, 1, 2, 3]) >>> np.where(a > 2)[0] [2 5]

相反,你可以使用:

method(...)

答案 1 :(得分:0)

Ruby中没有类方法。只有实例方法。我们称之为&#34;类方法&#34;,实际上只是一个碰巧是类的对象的单例方法。

等等,我只是说&#34;单身方法&#34;?实际上,我撒了谎。也没有单身方法。我们称之为&#34;单身方法&#34;实际上只是单例类的实例方法。

因此,考虑到只有实例方法,并且您已经知道如何引用实例方法,您已经知道了问题的答案。你被教导得很糟糕,因为有人告诉你,有一种类似于&#34;类的方法&#34;,实际上并没有。

所以,你实际上在你的问题中回答了你自己的问题:你正在寻找的方法是Object#method