Ruby - Python中__str__()方法的等价物?

5

Ruby中是否有类似于Python类上可以定义的__str__()方法的等效方法?

3个回答


6

值得一提的是,inspect模块更像是__repr__()而不是__str__()

从库参考文档中可以看到...

repr(self)

由内置函数repr()和字符串转换(反引号)调用以计算对象的“官方”字符串表示形式。如果可能的话,这应该看起来像一个有效的Python表达式,可以使用它来重新创建具有相同值的对象(在适当的环境中)。如果这不可能,则应返回类似“<...一些有用的描述...>”的字符串。返回值必须是一个字符串对象。如果一个类定义了__repr__()但没有定义__str__(),则在需要该类实例的“非正式”字符串表示时也会使用__repr__()。


5
在核心类中,通常使用“inspect”。 例如:
irb(main):001:0> puts "array is: #{[1,2,3].inspect}"
array is: [1, 2, 3]
=> nil
irb(main):002:0> puts "array is: #{[1,2,3]}"
array is: 123
=> nil
irb(main):003:0>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接