一、__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": "\u6dd8\u5c0f\u6b23", "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 '佩奇'
本文介绍了Python中两个关键的内置方法:__str__用于print语句时的对象展示,返回字典或JSON格式字符串;而__repr__在命令行直接输入对象时触发,返回详细的字符串表示。通过实例演示了如何在Person类中使用这两个方法,并展示了不同场景下的字符串输出形式。
1482

被折叠的 条评论
为什么被折叠?



