首页 > 编程语言 >Python中的__repr__()方法

Python中的__repr__()方法

时间:2024-01-14 23:24:57浏览次数:25  
标签:__ name Python self repr Person 字符串

  在 Python 中,__repr__() 是一个特殊方法(magic method),用于定义对象的字符串表示形式。当你调用内置函数 repr() 或使用 str() 函数来获取对象的字符串表示时,实际上是调用了对象的 __repr__() 方法。

  下面是一个简单的例子,演示了 __repr__() 的用法:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person(name={self.name}, age={self.age})"

# 创建一个Person对象
person = Person("Alice", 30)

# 调用repr()函数获取对象的字符串表示
representation = repr(person)

# 输出结果
print(representation)  # 输出 Person(name=Alice, age=30)

  在这个例子中,Person 类实现了 __repr__() 方法,返回一个字符串,描述了 Person 对象的属性。当我们调用 repr(person) 时,实际上就是调用了 person.__repr__()

  在实际开发中,实现 __repr__() 方法对于调试和日志记录非常有用。它提供了一个人类可读的字符串表示形式,有助于理解对象的状态。当你在交互式环境中输入对象名称并按回车时,也会调用 __repr__() 方法显示对象的字符串表示。

  需要注意的是,__repr__() 方法应该返回一个字符串,这个字符串应该是一个可以通过 eval() 函数重新创建相同对象的表达式。如果没有定义 __repr__() 方法,Python 会尝试调用 __str__() 方法来获取对象的字符串表示,如果也没有定义 __str__(),则会返回默认的字符串表示。




NLP工程化

1.本公众号以对话系统为中心,专注于Python/C++/CUDA、ML/DL/RL和NLP/KG/DS/LLM领域的技术分享。
2.本公众号Roadmap可查看飞书文档:https://z0yrmerhgi8.feishu.cn/wiki/Zpewwe2T2iCQfwkSyMOcgwdInhf

NLP工程化(公众号)

NLP工程化(知识星球)

标签:__,name,Python,self,repr,Person,字符串
From: https://www.cnblogs.com/shengshengwang/p/17964434

相关文章

  • Python中的__add__()方法
      在Python中,__add__()是一个特殊方法(magicmethod),用于定义对象之间的加法操作。当你使用+运算符对两个对象进行相加时,实际上会调用对象的__add__()方法。  下面是一个简单的例子,演示了__add__()的用法:class ComplexNumber:    def __init__(self, real, i......
  • 学习进度笔记3
    1.计算级数请用脚本的方式编程计算并输出下列级数的前n项之和Sn,直到Sn刚好大于或等于q为止,其中q为大于0的整数,其值通过键盘输入。例如,若q的值为50.0,则输出应为:Sn=50.416695。请将源文件保存为exercise2-1.scala,在REPL模式下测试运行,测试......
  • Visual Studio 2010 授权修改
    参见以下步骤:32位的系统中,修改以下注册表键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Registration\UserNameHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\RegisteredOrganization64位系统,修改以下注册表键值HKEY_LOCAL_MACHINE\SOFT......
  • Python中的__call__()方法
      在Python中,__call__()是一个特殊方法(magicmethod),用于使对象变成可调用(callable)。当一个对象实现了__call__()方法时,你可以像调用函数一样调用这个对象,就好像它是一个函数一样。  下面是一个简单的例子,演示了__call__()的用法:class CallableObject:    def _......
  • Java基础
    Java基础一、注释//1、单行注释//我是单行注释//2、多行注释/*我是多行注释*///3、文档注释/***@Description我是文档注释*@Author作者*///4、有趣的注释/****_ooOoo_*o8888888o*88......
  • 【Vue】前端直接显示MySQL Datatime时间,显示为英文如何处理
    问题如图想让时间显示为自己想要的格式,可以自己编写一个函数constformatDate=(timestamp)=>{constdate=newDate(timestamp);constyear=date.getFullYear();constmonth=String(date.getMonth()+1).padStart(2,'0');constday=String(date.getDate......
  • Python中的魔法方法
      Python中有很多魔法方法,它们以双下划线__开头和结尾,用于实现类的特殊行为。以下是一些常用的魔法方法:1.__init__(self,...)  初始化方法,用于创建对象并设置初始状态。2.__str__(self)  返回对象的非正式字符串表示形式,通过str()函数调用。3.__repr__(self)......
  • ch01_投资与量化投资
    一、什么是投资1.1经济意义上的投资投资是为获得一定的预期社会经济效益而进行的资金或资本物的投入及其活动过程。1.2投资的分类实物资产,又称实质资产或有形资产,是以实物形态存在的资产,如汽车、房屋、机器设备、各种原料、材料等,是固定资产与流动资产、生产流通性固定资产......
  • 11.10
    《程序员的修炼之道:从小工到专家》的第三章节主要探讨了“技术深度与广度”的问题。这一章节强调了技术深度和广度对于程序员的重要性,以及如何在这两个方面取得平衡。首先,作者指出技术深度是程序员的核心竞争力。只有深入理解某个领域的技术,才能更好地解决相关问题。因此,程序员需......
  • 11.8
    《代码大全2》是一本非常经典的软件开发书籍。在书中,强调了比较优秀的代码结构和命名规范的重要性。书中注释的部分帮助我理解怎么去编写有意义的注释,合适的注释可以提供代码理解上的便利,但是过多或者无关的注释会干扰代码的可读性。还有书中关于代码复用和模块化的内容帮助学习......