Rubyオブジェクトが公開するメソッド/プロパティを見つける簡単な方法は何ですか?
PowerShellで文字列のメンバー情報を取得する例として、次のことができます。
"" | get-member
Pythonでは、
dir("")
Rubyオブジェクトのメンバー情報を発見する簡単な方法はありますか?
Rubyにはプロパティがありません。別のオブジェクト内のインスタンス変数にアクセスするたびに、メソッドにアクセスする必要があります。
オブジェクトのメソッドを取得する2つの方法:
my_object.methods
MyObjectClass.instance_methods
Object基底クラスから継承されたメソッドのリストを整理するために私がやることは1つです。
my_object.methods - Object.instance_methods
オブジェクトの属性をリストするには:
object.attributes
これを使って:
my_object.instance_variables
これを実現する方法は2つあります。
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"
もう1つは:
p1.instance_variables # => [:@name]
p1.instance_variable_get :@name # => "simon"
object.methods
オブジェクトのメソッドの配列を返します