找出 ruby 对象公开哪些方法/属性的简单方法是什么?
作为获取字符串成员信息的示例,在 PowerShell 中,您可以执行
"" | get-member
在 Python 中,
dir("")
有没有这么简单的方法来发现 Ruby 对象的成员信息?
找出 ruby 对象公开哪些方法/属性的简单方法是什么?
作为获取字符串成员信息的示例,在 PowerShell 中,您可以执行
"" | get-member
在 Python 中,
dir("")
有没有这么简单的方法来发现 Ruby 对象的成员信息?
"foo".methods
看:
http://ruby-doc.org/core/classes/Object.html
Ruby 没有属性。每次要访问另一个对象中的实例变量时,都必须使用方法来访问它。
获取对象方法的两种方法:
my_object.methods
MyObjectClass.instance_methods
我要做的一件事是修剪从 Object 基类继承的方法列表:
my_object.methods - Object.instance_methods
列出对象的属性:
object.attributes
用这个:
my_object.instance_variables
有两种方法可以做到这一点:
obj.class.instance_methods(false)
,其中“false”表示它不包含超类的方法,例如:
class Person
attr_accessor :name
def initialize(name)
@name = name
end
end
p1 = Person.new 'simon'
p1.class.instance_methods false # => [:name, :name=]
p1.send :name # => "simon"
另一个是:
p1.instance_variables # => [:@name]
p1.instance_variable_get :@name # => "simon"
object.methods
将返回对象中的方法数组