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

liftword3周前 (01-16)技术文章9

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

相关文章

第20p,什么是字符串?Python中的str

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第20篇文章,第二阶段的课程:Python基础知识:Python的字符串(上篇)学习本课程,建议先看一遍:【计算机基础知识】课程。 一、什么是字...

Python中repr()函数和str()的区别

repr()和str,一个最简单的区别:repr是函数,str跟int一样是一种对象类型。repr(object)返回对象的可打印形式字符串。对于很多类型而言,本函数试图返回的字符串,会与将对象传给...

每天3分钟Python基础-str字符串

Python是一门强大的编程语言,广泛应用于各种领域。字符串是Python中非常重要的一种数据类型,也是编程中最常用的数据类型之一。字符串是由字符序列组成的不可变序列,Python提供了许多有用的字符...

Python3中str、bytes、bytearray转化

简介str是采用Unicode编码方式的序列,主要用于显示bytes是字节序列,主要用于网络和文件传输bytearray和bytes是一样的,只是它是可变的,它们的关系和str与list类似str和b...

python之魔术方法1:call、len、str、repr

__call__方法说明:让一个对象的实例变成可执行的。案例:class Cat: '''猫类''' def __init__(sel...