proc
有没有办法从 Ruby 中的方法中得到一个真实的?
获得的UnboundMethod
viainstance_method
不符合要求,因为我只能将它绑定到声明该方法的类的对象。我无法像在(使用)中那样重新解释self
方法体内部。proc
instance_exec
同样,Method
获得的 viamethod
也不行,因为self
它绑定到了接收者,method
我无法更改它。
编辑(澄清):
我要做的是采用一个类中定义的方法并将其转移到另一个类。这意味着我需要能够重新解释self
方法内的含义。对于proc
s,这可以通过instance_exec
and实现instance_eval
,但对于方法则不行。
为什么我试图将方法从一个类移动到另一个类?长话短说,实现一种命名空间形式,因为我对 Ruby 提供的可见性控制最不满意(无法将模块成员隐藏到包含类)。然而,这远远超出了这个问题的范围。