当前位置: 首页 > news >正文

Python __str__()方法

在Python中,str() 方法是一个特殊的方法(也称为魔术方法或双下方法),它定义了当对象需要被转换为字符串表示时应该如何做。

当你尝试打印对象(使用 print() 函数)或将对象插入到需要字符串表示的上下文中(比如字符串格式化或拼接)时,Python会自动调用该对象的 str() 方法。

基本用法

str() 方法应该返回一个字符串,这个字符串是对对象状态的合理描述。它没有参数(除了 self),并且必须被定义为一个实例方法。

class MyClass:  def __init__(self, name, value):  self.name = name  self.value = value  def __str__(self):  return f"MyClass(name={self.name}, value={self.value})"  # 实例化 MyClass 并打印  
obj = MyClass("example", 42)  
print(obj)  # 输出: MyClass(name=example, value=42)

repr() 的区别

str() 和 repr() 都是用于生成对象的字符串表示的特殊方法,但它们有不同的用途和期望的输出:

str():应该返回一个对用户友好的、可读性强的字符串表示,主要用于打印和日志记录等场景。
repr():应该返回一个对开发者友好的、尽可能准确的字符串表示,通常包括对象的类型和足够的信息来重新创建该对象(如果可能的话)。它通常被用于调试,并且 repr() 函数会调用它。
如果 str() 没有被定义,那么在需要字符串表示时,Python会回退到调用 repr()。但是,最好同时定义这两个方法,以确保对象在不同上下文中都能有合适的表现。

示例
下面是一个同时定义了 str() 和 repr() 方法的示例:

class Point:  def __init__(self, x, y):  self.x = x  self.y = y  def __str__(self):  return f"Point({self.x}, {self.y})"  def __repr__(self):  return f"Point(x={self.x}, y={self.y})"  # 实例化 Point 并测试输出  
p = Point(3, 4)  
print(p)        # 输出: Point(3, 4)  
print(repr(p))  # 输出: Point(x=3, y=4)

在这个例子中,str() 提供了一个简洁的用户友好表示,而 repr() 提供了一个更详细且可能包含更多信息的开发者友好表示。

http://www.lryc.cn/news/481892.html

相关文章:

  • 虚拟机的安装
  • HCIP快速生成树 RSTP
  • Python基础学习-05元组 tuple
  • vue3 基于element-plus进行的一个可拖动改变导航与内容区域大小的简单方法
  • c++基础28函数的类型
  • Elasticsearch(四):query_string查询介绍
  • 超好用shell脚本NuShell mac安装
  • Vue禁止打开控制台/前端禁止打开控制台方法/禁用F12/禁用右键
  • volatile关键字
  • [Linux] 共享内存
  • 网络的基础
  • 金融学期末速成笔记
  • 【Elasticsearch入门到落地】1、初识Elasticsearch
  • 电子版产品册代替纸质版产品册,开源节流!
  • npm i忽略依赖冲突
  • 商品,订单业务流程梳理一
  • Spring中的 bean 标签中的 factory-bean , factory-method
  • 车间管理|基于SprinBoot+vue工厂车间管理系统设计与实现(源码+数据库+文档)
  • C#实战:使用腾讯云识别服务轻松提取火车票信息
  • 王珊数据库系统概论第六版PDF+第五版课后答案+课件
  • Spring学习笔记(四)
  • CALL处 F8的“bug“
  • Verilog中的有符号数与无符号数
  • 15分钟学 Go 第 47 天 :并发进阶——深入了解Go语言的并发模型!
  • 前端代码分析题(选择题、分析题)——this指向、原型链分析
  • react 组件应用
  • mysql 快速解决死锁方式
  • RabbitMQ 篇-深入了解 RabbitMQ 安装以及 SpringAMQP 的基础使用(声明队列和交换机、发送接收消息、配置 JSON 消息转化器)
  • 在 WPF 中,绑定机制是如何工作的?WPF数据绑定机制解析
  • pwn学习笔记(12)--Chunk Extend and Overlapping