python __str__、__repr__和__bytes__功能及应用示例
在Python中,__str__、__repr__和__bytes__是三个特殊的方法,用于定义对象的字符串表示形式。它们分别用于可读性的字符串表示、准确无歧义的字符串表示和二进制表示。下面是它们的功能和应用示例:
__str__方法:
用于返回对象的可读性字符串表示形式。通常用于用户友好的输出。
class MyClass:
def __str__(self):
return "This is MyClass"
obj = MyClass()
print(str(obj)) # 输出:This is MyClass
Python
__repr__方法:
用于返回对象的准确无歧义的字符串表示形式。通常用于开发者调试和对象的重建。
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f"Point({self.x}, {self.y})"
p = Point(3, 4)
print(repr(p)) # 输出:Point(3, 4)
Python
__bytes__方法:
用于返回对象的二进制表示形式。通常用于序列化和反序列化对象。
class MyClass:
def __bytes__(self):
return b"binary data"
obj = MyClass()
print(bytes(obj)) # 输出:b'binary data'
Python
这些方法的具体实现可以根据对象的特性和需求进行自定义。__str__和__repr__方法常常被同时实现,而__bytes__方法则在需要对象的二进制表示形式时才实现。这些方法在不同的场景中可以用于定制对象的字符串表示,从而方便调试、输出或序列化对象。