Python | python中的特殊方法__str__和__repr__

__str__和__repr__

    • 无方法
    • 有方法
      • __str__
      • __repr__
      • 同时存在

__str__和__repr__都是更改print的输出形式

无方法

  • 无特殊方法
class  Person:def __init__(self,name,age):self.name = nameself.age = ageprint(Person('aa', 34))

<main.Person object at 0x000002231EF78B38>

有方法

str

class  Person:def __init__(self,name,age):self.name = nameself.age = agedef __str__(self):# 获取当前方法的名称current_method_name = inspect.currentframe().f_code.co_namereturn f"function:{current_method_name}    name:{self.name},age:{self.age}"print(Person('aa', 34))

function:__str__ name:aa,age:34

repr

class  Person:def __init__(self,name,age):self.name = nameself.age = agedef __repr__(self):# 获取当前方法的名称current_method_name = inspect.currentframe().f_code.co_namereturn f"function:{current_method_name}    name:{self.name},age:{self.age}"print(Person('repr', 18))

function:__repr__ name:repr,age:18

同时存在

  • 肯定存在优先级高低的问题
class  Person:def __init__(self,name,age):self.name = nameself.age = agedef __repr__(self):# 获取当前方法的名称current_method_name = inspect.currentframe().f_code.co_namereturn f"function:{current_method_name}    name:{self.name},age:{self.age}"def __str__(self):# 获取当前方法的名称current_method_name = inspect.currentframe().f_code.co_namereturn f"function:{current_method_name}    name:{self.name},age:{self.age}"print(Person('test', 18))

在这里插入图片描述
__str__优先级更高

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/142862.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构初阶】顺序结构二叉树(堆)接口实现超详解

文章目录 1.树1. 1 树的概念与结构1. 2 树的相关术语1. 3 树的表示1. 4 树形结构实际运用场景 2.二叉树2. 1 概念与结构2. 2 特殊的二叉树2. 2. 1 满二叉树2. 2. 2 完全二叉树 2. 3 二叉树存储结构2. 3. 1 顺序结构2. 3. 2 链式结构 3. 实现顺序结构二叉树&#xff08;小堆&…

麦肯锡的金字塔原理:越简单,越高效

分享下金字塔原理&#xff0c;它由麦肯锡公司的芭芭拉明托在《金字塔原理》一书中首次提出&#xff0c;旨在帮助人们通过结构化的思维分析问题&#xff0c;思考问题和解决问题。它是一种方法&#xff0c;也是一种思想。 总的来说&#xff0c;金字塔原理就是将事情归纳出一个中…

[C++进阶]AVL树

前面我们说了二叉搜索树在极端条件下时间复杂度为O(n),本篇我们将介绍一种对二叉搜索树进行改进的树——AVL树 一、AVL 树的概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找效率低下。因此&#xff0c;两位…

随着访问范围的扩大 OpenAI o1-mini 现已向免费用户开放

上周&#xff0c;OpenAI 展示了其最新的大型语言模型&#xff08;LLM&#xff09;–OpenAI o1及其小兄弟 OpenAI o1-mini。该公司在公告中称&#xff0c;Plus 和 Team 用户可在公告发布之日起访问该模型。企业和教育用户将在本周获得该模型&#xff0c;而免费用户最终将获得 o1…

算法题总结(一)——二分查找专题

二分查找 我们二分查找的本质就是每次能够通过中间值来进行分割&#xff0c;能够比较判断&#xff0c;查找到或者接近需要的数据&#xff0c;然后把一部分的数据丢弃掉。 原题 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &…

一键更换软件源的工具——chsrc

前言 经常用pip&#xff0c;ubuntu的apt&#xff0c;或者centos的yum等包下载工具的人不可避免的一件事就是——“更换软件源”&#xff0c;因为以上三个包下载工具的软件源一般都是默认为国外的官方网站&#xff0c;由于国情问题&#xff0c;下载速度就会非常慢&#xff0c;所…

【Linux】生产者消费者模型:基于阻塞队列,使用互斥锁和条件变量维护互斥与同步关系

目录 一、什么是生产者消费者模型 二、为什么要引入生产者消费者模型&#xff1f; 三、详解生产者消费者模型 ​编辑 生产者和生产者、消费者和消费者、生产者和消费者&#xff0c;它们之间为什么会存在互斥关系&#xff1f; 生产者和消费者之间为什么会存在同步关系&…

Flet全平台开发:软件开发界勇士为Python语言补短板的一次极具挑战性的尝试、冲刺和华丽亮相

一、Flet创始人和开发者介绍、开发Flet的背景介绍 Flet 的创始人和开发者 Feodor Fitsner 是俄罗斯人&#xff0c;就职于微软。 Flet 的第一个版本于 2022 年 6 月发布。这是一个相对较新的库&#xff0c;它基于 Flutter 框架&#xff0c;首先支持的是用 Python 语言开发软件…

fiddler抓包03_汉化

Fiddler安装后为英文界面&#xff1a; 【汉化步骤】 ​① 下载汉化文件&#xff0c;链接: https://pan.baidu.com/s/1c13Dh--TwSCbwHykO8KAug?pwd8nvn 提取码: 8nvn ② 进入Fiddler目录&#xff0c;如我的安装在E:\test\Fiddler&#xff0c;将FiddlerTexts.txt复制到E:\tes…

大模型时代:普通人如何获利

随着人工智能技术的飞速发展&#xff0c;我们正步入一个以大模型为驱动力的新时代。这些大型语言模型&#xff0c;如GPT-3和BERT&#xff0c;已经在各个领域展现出惊人的能力&#xff0c;包括文本生成、翻译、问答等。这些技术的进步不仅改变了我们的生活&#xff0c;也为普通人…

【AI学习笔记】初学机器学习西瓜书概要记录(一)机器学习基础知识篇

初学机器学习西瓜书的概要记录&#xff08;一&#xff09;机器学习基础知识篇(已完结) 初学机器学习西瓜书的概要记录&#xff08;二&#xff09;常用的机器学习方法篇(待更) 初学机器学习西瓜书的概要记录&#xff08;三&#xff09;进阶知识篇(待更) 文字公式撰写不易&#x…

以root用户登陆ubuntu的桌面环境

前言 在学习Linux的时候&#xff0c;经常都需要使用sudo权限来对配置文件进行修改&#xff0c;常用的方法就是用vim编辑器在命令行界面进行修改&#xff0c;比如sudo vim /etc/profile&#xff0c;但我觉得每次都用命令行挺麻烦的&#xff0c;于是&#xff01;&#x1f913;我…

【STL】pair 与 map:基础、操作与应用

C 标准库中提供了许多用于处理数据结构的容器和工具。pair 和 map 是两个非常有用的工具&#xff0c;广泛应用于存储和处理关联数据。在本文中&#xff0c;我们将详细介绍 pair 与 map 的相关操作&#xff0c;并结合代码实例为读者提供清晰的理解。 pair&#xff1a;成对数据的…

Docker:SpringBoot项目创建Docker镜像并推送到阿里云容器镜像仓库

0. 准备工作 os&#xff1a;macos 15.0 jdk&#xff1a;1.8 docker&#xff1a;26.0.0 1. 阿里云容器镜像服务创建实例 创建个人版 个人实例创建成功 个人镜像加速器地址 2. 安装Docker Desktop Docker Desktop是Docker的一个集成工具&#xff0c;非必须&#xff0c;过程…

Vscode运行Python无法导入自己编写的包的解决方法

前言 在Vscode编辑器中&#xff0c;我经常用于编写Python代码&#xff0c;这一过程中&#xff0c;无论是导入第三方包还是Python内置的包&#xff0c;都未曾遇到过任何问题。然而&#xff0c;当我尝试导入一个跨文件自定义的包时&#xff0c;却遭遇了导入异常的问题。这一经历…

【例题】lanqiao153 洁净数

解题思路 通过枚举1-n的数&#xff0c;判断其是否为洁净数求解。 洁净数的判断&#xff1a;i%102判断此时的个位是不是2&#xff0c;ii//10把前一位移动到个位 # 小明非常不喜欢数字 2&#xff0c;包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2&#xff0c;…

C++中的容器——vector

1. vector的介绍 vector&#xff1a;vector的底层实际上就是一个数组&#xff08;也称为顺序表&#xff09;&#xff0c;数据是连续存储在数组中的&#xff0c;因此vector是可以使用下标来进行访问的&#xff0c;但是它的大小并不是像数组一样是固定的&#xff0c;而是可以动态…

java基础知识20 Intern方法的作用

一 Intern方法作用 1.1 Intern方法 1.在jdk1.6中&#xff1a; intern()方法&#xff1a;在jdk1.6中&#xff0c;根据字符串对象&#xff0c;检查常量池中是否存在相同字符串对象 如果字符串常量池里面已经包含了等于字符串X的字符串&#xff0c;那么就返回常量池中这个字符…

从零开学C++:多态

引言&#xff1a;在我们去购买汽车票的时候&#xff0c;我们总会遇到成人全价&#xff0c;学生打折的情况。不同的对象&#xff08;成人、学生&#xff09;进行同一操作&#xff08;购买车票&#xff09;&#xff0c;得到不同的结果&#xff08;全价、打折&#xff09;&#xf…

2024年CAD图纸加密软件|加密图纸软件推荐:10款高效CAD加密软件

在当今数字化时代&#xff0c;CAD图纸已成为工程设计、建筑规划、机械制造等领域不可或缺的重要文件。然而&#xff0c;随着数据泄露和信息安全问题的日益严重&#xff0c;保护CAD图纸的安全性变得尤为重要。为了确保设计数据的安全&#xff0c;使用高效的CAD图纸加密软件成为了…