通常,我們可以使用p foo
或foo.inspect
來查看實例變量,但是它只是默認行爲,對象可以選擇顯示其他內容(或者隱藏所有實例變量)(可能通過重新定義方法inspect
)。在Ruby中,foo.inspect可以打印出所有的實例變量 - 如果沒有訪問器,我們可以打印出一個單獨的變量嗎?
的主要問題是,如果我可以看到foo.inspect
有@bar
是一個對象,具有實例變量@wah
,其具有的"hello"
的值,我可以打印出@wah
直接,如果沒有訪問器(讀取器)可用於@bar
和@wah
?通常,如果沒有訪問者,它不應該是可讀的,但如果出於調試目的呢?
這是因爲attr_ *生成方法而不是變量。 – 2012-10-17 21:40:05