python进阶(6):魔术方法篇(2)

1 __repr__方法

__repr__是Python类中的一个特殊方法,全称为“representation”,即表示法。当你在交互式环境中直接输入一个对象的名称,或者使用repr()函数时,Python就会调用这个方法来返回一个字符串,该字符串旨在提供对象的“官方”表示形式,它应该是一段可读性强且尽可能明确地表示对象内容的代码片段,理论上,这个字符串应该是可以用来重新创建原始对象的。

不使用__repr__方法时

class Book:
    def __init__(self, title, author, year):
        self.title = title
        self.author = author
        self.year = year


# 创建一个Book示例
my_book = Book('金瓶梅','未知',-475)

# 直接打印这个对象
print(my_book)
print(repr(my_book))

结果如下:

使用__repr__

class Book:
    def __init__(self, title, author, year):
        self.title = title
        self.author = author
        self.year = year

    def __repr__(self):
        return f"Book('{self.title}','{self.author}',{self.year})"

# 创建一个Book示例
my_book = Book('金瓶梅','未知',-475)

# 直接打印这个对象
print(my_book)
print(repr(my_book))

结果如下:

在上面的例子中,我们定义了Book类,并实现了__repr__方法。当我们打印my_book对象时,输出的是一个构造该对象的字符串,这正是__repr__所返回的内容。这样的输出不仅展示了对象的关键信息,而且遵循了“可被解析以重构对象”的原则。

2 未完待续

相关推荐

  1. python字符串练习

    2024-07-17 16:22:03       27 阅读
  2. Python(二)】——程序调试方法

    2024-07-17 16:22:03       37 阅读
  3. Python学习入门(2)——功能

    2024-07-17 16:22:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 16:22:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 16:22:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 16:22:03       58 阅读
  4. Python语言-面向对象

    2024-07-17 16:22:03       69 阅读

热门阅读

  1. ODrive学习笔记三——串口流

    2024-07-17 16:22:03       23 阅读
  2. LinkedList

    2024-07-17 16:22:03       21 阅读
  3. AcWing 668. 游戏时间2

    2024-07-17 16:22:03       22 阅读
  4. [C/C++入门][ifelse]20、闰年判断

    2024-07-17 16:22:03       22 阅读
  5. Pycharm远程配置及Linux&Windows虚拟环境安装记录

    2024-07-17 16:22:03       23 阅读
  6. ES6基本语法(四)——对象和类

    2024-07-17 16:22:03       20 阅读
  7. TG群导航机器人:深度检索技术的创新应用

    2024-07-17 16:22:03       24 阅读
  8. 请求与响应的方式

    2024-07-17 16:22:03       22 阅读