python类中的__str__以及__repr__

时间:2022-03-28 15:11:39

一.__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__就不会执行
  • 注意:这俩方法的返回值必须是字符串,否则抛出异常