zoukankan      html  css  js  c++  java
  • str与repr 改变对象的字符串显示

     1 class Foo:
     2     num = 3
     3 
     4     def __init__(self, name, age):
     5         self.name = name
     6         self.age = age
     7 
     8     def __str__(self):  # 自己定制打印信息
     9         return '新的自定制显示的方法名字是%s  年龄是%s' % (self.name, self.age)
    10 
    11     def __repr__(self):  # 如果找不到str方法,就会去找__repr__方法
    12         return '这是定制的'  # 该方法也可以在解释器里面显示
    13 
    14 
    15 f1 = Foo('小白', 28)
    16 print(f1)  # 触发str(f1)----->f1.__str__()   相当于以前的len()是执行的__len__()方法
    17 a = str(f1)  # 验证print(f1) 就是执行str(f1)
    18 print(a)
    19 b = f1.__str__()  # 验证print(f1) 就是执行str(f1)
    20 print(b)
    21 print(f1)
    22 输出:
    23 新的自定制显示的方法名字是小白  年龄是28
    24 新的自定制显示的方法名字是小白  年龄是28
    25 新的自定制显示的方法名字是小白  年龄是28
    26 新的自定制显示的方法名字是小白  年龄是28
    27 新的自定制显示的方法名字是小白  年龄是28
    28 新的自定制显示的方法名字是小白  年龄是28

    如果__str__ 没有被定义,就会找到__repr__     retrun必须返回字符串,否则会抛出异常

  • 相关阅读:
    第一次博客作业
    第一次个人编程作业
    第一次博客作业
    第一次个人编程作业
    第一次博客作业
    node.js&electron$npm的关系
    前端常用相关缩写
    PS通道抠图
    (AOP)理解
    mybatis内置二级缓存。
  • 原文地址:https://www.cnblogs.com/ch2020/p/12444653.html
Copyright © 2011-2022 走看看