如何获取方法的类绑定?

时间:2012-11-27 13:52:29

标签: ruby reflection methods

class A; def foo; end; end
class B < A; end
b = B.new          # => #<B:0x0000000243b8c0>
m = b.method :foo  # => #<Method: B(A)#foo>
m.owner            # => A
m.receiver         # => #<B:0x0000000243b8c0>
m.receiver.class   # => B
mm = m.unbind      # => #<UnboundMethod: B(A)#foo>

如何B mm来解析mm.to_s的结果?

1 个答案:

答案 0 :(得分:1)

我花了一些时间看proc.c,我觉得不可能。 B存储在rclass中,据我所知,它无法在任何地方访问。您可以看到它的使用方式here,尽管我认为这不会有所帮助。

我可以问你为什么要这样做?也许还有另一种解决一般问题的方法:)