博客
关于我
` __str__ 和 __repr__`
阅读量:280 次
发布时间:2019-03-01

本文共 1266 字,大约阅读时间需要 4 分钟。

__str__ 和 __repr__

一、__str__

  • 触发条件:当使用 print() 函数输出对象时,会调用 __str__ 方法。

    class Person:        def __init__(self, name):            self.name = name        def __str__(self):            print("打印对象时触发了__str__")            return f"对象名字:{self.name}"    P1 = Person("淘小欣")    P2 = Person("乔布斯")    print(P1)  # 输出内容:打印对象时触发了__str__对象名字:淘小欣    print(P2)  # 输出内容:打印对象时触发了__str__对象名字:乔布斯    print(P2.name)  # 输出:乔布斯
  • 返回一个看起来字典格式的字符串示例。

    # 示例一:    class Person:        def __init__(self, name, age):            self.name = name            self.age = age        def __str__(self):            return f"{self.__dict__}"    P1 = Person("库克", 99)    print(P1)  # 输出:{'name': '库克', 'age': 99}    # 示例二:    import json    class Person:        def __init__(self, name, age):            self.name = name            self.age = age        def __str__(self):            return json.dumps(self.__dict__)    P1 = Person("淘小欣", 22)    print(P1)  # 输出:{"name": "淘小欣", "age": 22}

二、__repr__

  • 触发条件:在命令窗口中直接写对象时,会调用 __repr__ 方法。

    class Person:        def __init__(self, name):            self.name = name        def __repr__(self):            print("命令窗口直接写对象触发了__repr__")            return f"名字 : {self.name}"    P1 = Person("佩奇")    >>> P1  # 输出:命令窗口直接写对象触发了__repr__名字 : 佩奇    >>> P1.name  # 输出:佩奇

转载地址:http://kwxo.baihongyu.com/

你可能感兴趣的文章
Objective-C实现软键盘功能(附完整源码)
查看>>
Objective-C实现输入两个浮点数,输出它们中的大数(附完整源码)
查看>>
Objective-C实现输出不同类型所占的字节数(附完整源码)
查看>>
Objective-C实现辗转相除法(附完整源码)
查看>>
Objective-C实现辗转相除法算法(附完整源码)
查看>>
Objective-C实现边缘检测Canny(附完整源码)
查看>>
Objective-C实现近邻传播算法(附完整源码)
查看>>
Objective-C实现返回 Collatz 序列及其任意正整数的长度算法(附完整源码)
查看>>
Objective-C实现返回一个包含所有节点邻居的数组算法(附完整源码)
查看>>
Objective-C实现返回数字的二进制表示中使用的位数bitLength算法(附完整源码)
查看>>
Objective-C实现进度条(附完整源码)
查看>>
Objective-C实现通讯录管理系统(附完整源码)
查看>>
Objective-C实现通过临界区实现线程同步(附完整源码)
查看>>
Objective-C实现通过年月日得到改日为该年的第几天(附完整源码)
查看>>
Objective-C实现通过注册表生成注册程序( 附完整源码)
查看>>
Objective-C实现遍历FTP文件目录( 附完整源码)
查看>>
Objective-C实现遗传算法(附完整源码)
查看>>
Objective-C实现遗传算法(附完整源码)
查看>>
Objective-C实现遗传算法(附完整源码)
查看>>
Objective-C实现邻接表(附完整源码)
查看>>