python __str__、__repr__和__bytes__功能及应用示例

liftword4个月前 (01-16)技术文章29

在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__方法则在需要对象的二进制表示形式时才实现。这些方法在不同的场景中可以用于定制对象的字符串表示,从而方便调试、输出或序列化对象。

相关文章

Python 中的 byte和str有什么区别?

在 Python 中,byte和str是两种不同的数据类型,用于表示不同形式的数据。字节(byte):字节是用于表示二进制数据的一种数据类型。它的主要用途是处理网络数据或读取/写入二进制文件。字节串是...

「Python教程」第6篇 Python基本语法之字符串

从本篇开始,我们开始学习Python的基本语法。由于字符串是在程序中最常用到的数据类型,那么就先从字符串开始。目录如何表示字符串多行字符串转义字符禁止转义格式化字符串关联文章列表如何表示字符串在Pyt...

Python中的格式化字符串函数str.format()

format()执行字符串格式化操作。 调用此方法的字符串可以包含字符串字面值或者以花括号 {} 括起来的替换域。 每个替换域可以包含一个位置参数的数字索引,或者一个关键字参数的名称。 返回的字符串副...