python的__repr__
函数非常有用,因为在自动使用print OBJECT时会调用它。
它有红宝石等价吗?我认为这是to_s,但是,我有p OBJECT似乎没有调用to_s方法。
我弄错了,p OBJECT似乎调用to_s方法如下。 我从我对其他问题的答案中得到了一些提示。 - Ruby's to_s method question (from Axe book 2nd edition)
# Sample code from Programing Ruby, page 24
class Song
def to_s
"Song"
end
end
class Songson < Song
def to_s
super + "<Songson>"
end
end
song = Songson.new()
p song
答案 0 :(得分:11)
obj.inspect => string
返回包含人类可读表示obj
的字符串。 如果未覆盖,请使用to_s
方法生成字符串。
[ 1, 2, 3..4, 'five' ].inspect #=> "[1, 2, 3..4, \"five\"]"
Time.new.inspect #=> "Wed Apr 09 08:54:39 CDT 2003"
obj.to_s => string
返回表示obj
的字符串。默认to_s
打印对象的类和对象id的编码。作为特例,作为Ruby程序的初始执行上下文的顶级对象返回“main”。
答案 1 :(得分:3)
p对象使用#inspect。