【发布时间】:2011-05-26 21:01:20
【问题描述】:
如何在变量中获取实例方法?例如:
class Foo
def bar
puts "bar"
end
end
我希望能够操纵“bar”实例方法(例如,传递它)。我该怎么做?
我知道我可以得到类常量
foo_class = Kernel.const_get("Foo")
有什么类似的方法可以得到Foo#bar吗?
【问题讨论】:
-
类方法
self.bar? -
您是想动态更改 bar 方法的工作方式,还是只是想调用 bar 方法以输出“bar”?
-
@fl00r:这行不通。我没有该类的实例。 @Scott Gottreu:我希望能够调用它。
-
你想在哪里传递实例方法?通常它绑定到对象上下文,没有它就不能调用。在对象中,您始终可以创建包装器
lambda{ bar }