繁体   English   中英

Ruby从Class获取实例方法定义

[英]Ruby get instance method definition from Class

我试图从Class对象获得方法的定义:foo。

class Bar
  def foo(required_name, optional="something")
    puts "Hello args are #{required_name}, #{optional}"
  end

  def self.bar
    puts "I am easy, since I am static"
  end
end

无法创建类的实例 ,因为我需要方法定义来评估我应该创建对象(应用程序需求)。 Bar.class.???(:foo)

我可以使用Bar.class.method(:bar)获得bar定义但当然我需要foo ,谢谢!

更新:

使用Ruby 1.8.7

您可以在类这样的类上使用方法instance_method

Bar.instance_method(:foo)

这将返回UnboundMethod一个实例。 (见http://ruby-doc.org/core-1.9.3/UnboundMethod.html

您可以发现该类是否具有实例方法:foo如下:

Bar.instance_methods.include? :foo

一个例子:

String.instance_methods.include? :reverse
=> true
String.instance_methods.include? :each
=> false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM