python类中的__str__以及__repr__

一.__str__

  • 打印时触发
class A:
    def __str__(self):
        #打印时候执行的代码块
        return 'ok'  # 如果不返回字符串类型,则会报错
print(A())  #相当于 print(A().__str__()) # 打印的时候就是在打印返回值

二.__ repr__

  • str函数或者print函数--->obj.__str__()
  • repr或者交互式解释器--->obj.__repr__()
  • str函数或者print函数如果__str__没有被定义,那么就会使用__repr__来代替输出
  • str函数或者print函数如果__str__被定义,那么__repr__就不会执行
  • 注意:这俩方法的返回值必须是字符串,否则抛出异常

你可能感兴趣的:(python类中的__str__以及__repr__)