做一个网站成本多少,太原网站维护,洛阳网站改版,视频号广告推广1. __repr__
__repr__ 方法由 repr() 内置函数调用#xff0c;用于计算对象的“正式”字符串表示形式。理想情况下#xff0c;这个字符串应该看起来像一个有效的 Python 表达式#xff0c;可以在适当的环境下用来重新创建具有相同值的对象。如果这不可能实现#xff0c;那…1. __repr__
__repr__ 方法由 repr() 内置函数调用用于计算对象的“正式”字符串表示形式。理想情况下这个字符串应该看起来像一个有效的 Python 表达式可以在适当的环境下用来重新创建具有相同值的对象。如果这不可能实现那么 __repr__ 应该返回一个描述对象状态的字符串。返回值必须是一个字符串对象。
这个方法通常用于调试因此重要的是表示形式必须信息丰富且明确。例如如果定义了一个类并且只定义了 __repr__ 而没有定义 __str__那么当需要该类的实例的“非正式”字符串表示形式时__repr__ 也会被使用。
class Student:def __init__(self, name, age):self._name nameself._age agedef __repr__(self):return f{self.__class__.__name__}({self._name!r}, {self._age!r})这里使用了 !r 格式化字符串它会调用 repr() 函数来获取变量的字符串表示形式这通常用于确保输出的字符串是可读的。
2. __str__
__str__ 方法由 str()、format() 和 print() 内置函数调用用于计算对象的“非正式”或易于打印的字符串表示形式。与 __repr__ 不同__str__ 不需要返回有效的 Python 表达式可以使用更直观或更简洁的表示形式。 def __str__(self):return fa student named {self._name}这种方法的目的是为用户提供一个易于阅读的字符串通常在打印对象时使用。
3. 使用 !s 和 !r
在 Python 中格式化字符串时可以使用 !s 和 !r 来转换值。!s 调用 str() 函数而 !r 调用 repr() 函数。这在需要在格式化之前转换值时非常有用。
print(fStudent name: {student!r}) # 使用 repr()
print(fStudent name: {student!s}) # 使用 str()这允许开发者在打印或显示对象时根据需要选择更正式或更非正式的表示形式。 希望这能帮助你更好地理解 __repr__ 和 __str__ 方法的用途和实现方式。