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必须返回字符串,否则会抛出异常

  • 相关阅读:
    多项式牛顿迭代
    小明A+B
    分拆素数和
    选课时间
    今年暑假不AC
    Lowest Common Multiple Plus
    大小写转换问题(java程序)
    VS 中输入带空格的两个字符串
    整除的尾数
    不要62
  • 原文地址:https://www.cnblogs.com/ch2020/p/12444653.html
Copyright © 2011-2022 走看看