本文共 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/