博客
关于我
` __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/

你可能感兴趣的文章
Python+Selenium自动化测试:Page Object模式
查看>>
python+selenium进行cnblog的自动化登录测试
查看>>
Python函数只返回第一个值而不是数据框
查看>>
Python+SQL实战:京东用户行为数据分析案例解析(上)
查看>>
Python+SQL实战:京东用户行为数据分析案例解析(下)
查看>>
PYTHON+Twisted+sqlanydb=ABORT()
查看>>
Python函数之返回值、作用域和局部变量
查看>>
Python+统计学 | 探索常用的数据分析统计分布
查看>>
python, selenium中用于切换帧的函数
查看>>
python函数
查看>>
python----线程、进程、协程的区别及多线程详解
查看>>
python---5
查看>>
python---使用celery分布式系统异步发送短信(云通讯)来验证登录
查看>>
python--003--百分号字符串拼接、format
查看>>
Python--10、线程
查看>>
Python--Redis实战:第四章:数据安全与性能保障:第4节:复制
查看>>
python--基本代码规范
查看>>
Python--抽象类接口类
查看>>
PYTHON--欧拉习题二
查看>>
python--高级应用总结
查看>>