1
A
回答
1
做如下:
object.class.instance_methods # => [:meth1, :meth2,...]
object.instance_variables # => [:@var1, :@var2,..]
現在下面會給你一個對象的所有變量的值。
object.instance_variables.map { |var| object.instance_variable_get(var) }
文件是: -
0
要闡述什麼@Arup說:
要獲取類或模塊定義的所有常量,使用
MyClass.constants
。要獲取所有類變量(例如@@ a),請使用
my_class.class_variables
。要獲取所有類的instance_variables(例如@a),請使用
my_class.instance_variables
。要獲得所有的類方法,請使用
my_class.singleton_class.instance_methods
。有時您只需要爲特定類(或方法,特定模塊)定義的常量,實例方法,類方法,類變量,類實例變量或實例變量。只檢索那些(即,排除由類或模塊的祖先定義的那些),可使用
my_class.instance_methods(false)
,my_object.instance_variables(false)
等
例
module M
M_constant = "M constant"
def m_method
puts "M#m_instance_method"
end
end
class C
include M
attr_accessor :c_instance_variable
C_constant = "C constant"
@@c_class_variable = 4
def self.c_class_method1
puts "c_class_method1"
end
def c_method
@c_instance_variable = 0
puts "c_instance_method"
end
class << self
attr_accessor :c_class_instance_variable
@c_class_instance_variable = 5
def c_class_method1
puts "c_class_method1"
end
end
end
class D < C
end
對象
M.constants
#=> [:M_constant]
C.constants
#=> [:A, :C_constant, :M_constant]
C.constants(false)
#=> [:A, :C_constant]
D.constants
#=> [:A, :C_constant, :M_constant]
D.constants(false)
#=> []
C.class_variables
#=> [:@@c_class_variable]
C.class_variables(false)
#=> [:@@c_class_variable]
D.class_variables
#=> [:@@c_class_variable]
D.class_variables(false)
#=> []
C.new.instance_variables
#=> [:@c_instance_variable]
D.new.instance_variables
#=> []
M.instance_methods
#=> [:m_instance_method]
C.instance_methods.size
#=> 57
C.instance_methods(false)
#=> [:c_instance_variable, :c_instance_variable=, :c_method]
D.instance_methods.size
#=> 57
D.instance_methods(false)
#=> []
C.singleton_class.instance_methods.size
#=> 102
C.singleton_class.instance_methods(false)
#=> [:c_class_method1, :c_class_instance_variable,
# :c_class_instance_variable=]
D.singleton_class.instance_methods.size
#=> 102
D.singleton_class.instance_methods(false)
#=> []
相關問題
- 1. 我的看法不顯示我的所有db.MyDB.include(對象)
- 2. 如何在Rust中打印變量並讓它顯示有關該變量的所有內容,如Ruby的.inspect?
- 3. 如何顯示來自樹枝對象的所有方法?
- 4. 尋找一些工具,顯示我的方法的複雜性
- 5. 我的pendrive沒有顯示,我該如何修復它?
- 6. 在Ruby中,如何編寫一個方法來顯示任何對象的實例變量名稱和值
- 7. 如何調用一個變量具有一個.js對象「 - 」它
- 8. 我如何引用它所調用的方法內的對象?
- 9. 爲什麼var_dump($ _ POST)沒有顯示我的所有變量?
- 10. 我可以反映一個類的所有方法在Ruby中
- 11. 我有一個具有方法的項目列表,我如何對所有項目執行此方法?
- 12. 如何顯示所有方法和數據,當對象不具有在python
- 13. 如何列出Ruby中所有對象的方法?
- 14. 對象數組沒有顯示所有變量
- 15. 我有一個奇數變量顯示整個列的內容
- 16. 我是如何失去JavaScript內置對象和所有全局變量的?
- 17. 如果我有一個Math.Max對象,我將如何讓它顯示一個名稱而不是數字?
- 18. 爲什麼它顯示我所有輸入的重複?
- 19. 如何聲明int變量對我的所有方法都可見?
- 20. 我如何獲得一個foreach的所有值到php變量?
- 21. 我的Java變得有點複雜
- 22. 複雜而有趣的Ruby注入法。它有什麼作用?
- 23. 我如何獲得一個cookie對象的所有鍵或值?
- 24. 我有我的HTML中的麻煩我的JS變量顯示
- 25. 創建可變數量的對象並顯示java中的所有對象
- 26. 如何定義一個通用方法/捕獲它的一個對象的所有方法?
- 27. SWI序言(swipl)顯示了我使用的所有變量,我只想要一個所示
- 28. Ruby on Rails:我在我的節目中有計算年齡的代碼,但它顯示了所有計算。我如何得到它,只是顯示年齡?
- 29. 如何設計一個具有複雜初始化的不可變對象
- 30. RhinoMock:如何存根和複雜的對象返回一個方法參數
我發現附加'.sort'使得生活更容易掃描結果'.in stance_methods'和'.instance_variables'。 – pjs
@pjs你說的沒錯。 –
'grep'([doc](http://ruby-doc.org/core-2.1.0/Enumerable.html#method-i-grep))也很有幫助。假設你只想要包含一個問號(只能出現在最後)的方法:'User.instance_methods.grep/\?/'或者只是按名稱'.grep/^ to_ /'過濾。 –