自定义数据类型

2023-10-10

当你通过一个目的print(),它使用以下方法将其转换为字符串str()功能。您可以创建一个__str__()自定义对象上的方法来更改输出内容:

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

    def __str__(self):
        return f'Person({self.name})'

您将得到以下结果:

>>>
>>> from person import Person
>>> john = Person('John Cleese', 80)
>>> print(john)
Person(John Cleese)

__str__()方法旨在输出对象的人类可读版本。还有一个__repr__()方法,用于对象的 Python 表示。有一个repr()对应的函数str()功能。如果你定义你的__repr__()正确地,那么eval()可以调用其结果来创建一个新对象。

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

    def __str__(self):
        return f'Person({self.name})'

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

您将得到以下结果:

>>>
>>> john = Person('John Cleese', age=80)
>>> repr(john)
"Person(name='John Cleese', age=80)"
>>> john2 = eval(repr(john))
>>> type(john2)
<class 'repr_person.Person'>
>>> id(john)
4472330616
>>> id(john2)
4472331736

一些集合对象,例如列表,调用repr()当它们变成字符串时,它们的内容。这可以使打印到屏幕上的对象在其单独存在时与在列表中时表现不同:

class User:
    def __init__(self, username, password):
        self.username = username
        self.password = password

    def __str__(self):
        return self.username

    def __repr__(self):
        return f"User(username='{self.username}', password='{self.password}')"

您将得到以下结果:

>>>
>>> from user import User
>>> u = User('jcleese', 'ParrotIsNoMore')
>>> str(u)
'jcleese'
>>> str([u])
"[User(username='jcleese', password='ParrotIsNoMore')]"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义数据类型 的相关文章

随机推荐

  • 前端数据结构----栈

    众所周知 xff0c 栈结构是一种特殊的数据结构 xff0c 它遵从先进后出 xff0c 后进先出的原则 xff0c 即 xff08 LIFO xff1a last in first out xff09 xff1b 生活中其实都存在栈结构的
  • HAL库中断方式进行串口通信

    文章目录 前言一 通过CubeMX配置项目1 设置RCC2 设置SYS3 设置USART4 设置NVIC5 创建项目 二 在keil配置代码1 打开通过CubeMX生成的项目2 在main函数前定义全局变量3 在main函数中设置接收中断4
  • 单片机STM32入门——(6)串口通信

    单片机之STM32入门 xff08 6 xff09 串口通信 1 USART简介1 1USART框图1 2USART初始化函数 2 主程序编写3 效果展示 1 USART简介 1 1USART框图 1 功能引脚 TX 数据发送 RX 数据接
  • Jetson TX2零基础学习(二)——安装pip3、pytorch、torchvision

    目录 一 安装pip3 二 安装pytorch 三 安装torchvision 系列文章 大家好 xff0c 很开心又见面了 xff0c 这次接着上篇博客 xff0c 为大家详细介绍在Jetson TX2中搭环境的方法 一 安装pip3 首
  • Android-推荐一个沉浸式状态栏开源库

    自从android4 4开始 xff0c android手机状态栏再也不是一成黑的时代 xff0c 之前叫做变色龙 xff0c miui6发布会把他叫做沉浸式 xff0c 之后大家就自然而然的接受了沉浸式这个名称 xff0c 其实实际应该叫
  • 详解Linux下使用vscode编译运行和调试C/C++

    vscode是文本编辑而非集成开发环境 需要经过配置才能在其上编译执行代码 本教程将具体详解在linux上配置Visual Studio Code使用GCC C 编译器 g 和GDB调试器的方法 GCC是GNU 编译器集合 GDB则是 GN
  • 83、基于STM32单片机的智能公交报站系统 公交车GPS定位时钟语音报站器

    毕设帮助 开题指导 技术解答 xff08 有偿 xff09 见文末 目录 摘要 一 硬件方案 二 设计功能 三 实物图 四 原理图 五 PCB图 六 硬件框图 七 流程图 八 程序源码 九 资料包括 摘要 本文详细介绍了一款基于STM32单
  • 使用chatgpt 的api,当天就超过了免费试用额度(Free trial usage)

    如果你是ChatGPT的用户,你又是一个开发者,你可以通过
  • ChatGPT赚钱变现的24种方法

    越来越多的人看到了赚钱机会,开始利用 ChatGPT 进行变现。在这篇文章中,我想分享一些高鲸发现的方法。
  • 上架不久Android App,就收到tiktok的侵权警告(Notice of Claimed Infringements)

    我的一个朋友想通过google play市场挣点外快,刚送审不久就通过了“IARC Live Rating Notice”。过几天就收到了tiktok的侵权警告,具体邮件是这样的.
  • 在家赚钱的10种方法

    自由职业者是指那些独立工作并按项目或小时数收费的人,他们不属于任何公司或机构。通过成为自由职业者,你可以在家工作并赚取收入。你可以通过注册类似于Upwork, Freelancer, Fiverr等网站的方式开始你的自由职业者生涯。在这些网
  • 堆栈帧和堆栈跟踪

    A 栈帧代表单个函数调用 您可以将相互调用的函数可视化为彼此堆叠的虚拟框架 这堆数据结构实际上就是用来干这个的 当一个函数调用将其数据返回给调用者时 其堆栈帧将从堆栈中删除 添加和删 除新的堆栈帧 及其相关数据 直到最底部的堆栈帧 有时称为
  • 使用 .format() 方法格式化字符串

    这 format 方法是一种较新的格式化方法 应该优先于 样式格式 在本课程中 您将学习何时应该使用它 如何生成强大的格式字符串而不使简单的用例复杂化 以及如何将 int 变量格式化为十六进制字符串 gt gt gt gt gt gt He
  • 真正的 Python Slack 社区

    社区以及与其他 Python 达人的联系是 Real Python 的一个非常重要的方面 我们最受欢迎的社区功能是私人 Slack 社区 在这里您可以结识 Real Python 团队的其他学生和成员 要了解更多信息 请点击学习Python
  • 关于克劳迪娅·吴

    关于克劳迪娅 吴 Claudia 是一位狂热的 Pythonista 和 Real Python 贡献者 她是一名数据科学家 曾在多家专门从事信用和欺诈风险建模领域的科技初创公司工作 看看她网站欲了解更多出版物 克劳迪娅的教程 如何使用 P
  • Python 基础知识:数字和数学(概述)

    你不需要成为数学高手也能编程得好 事实是 很少 程序员需要了解的不仅仅是基本代数 当然 您需要了解多少数学取决于 您正在开发的应用程序 一般来说 数学水平要求 成为一名程序员的难度比你想象的要低 尽管数学和计算机编程的相关性不如 有些人可能
  • 站点连接检查器

    以下是您可以从中获得灵感的站点连接检查器示例 平命令 关于网络实用程序的维基百科文章 站点24x7 网站监控服务 以下是可用于构建站点连接检查器的资源 要求 一个优雅而简单的 Python HTTP 库 专为人类而构建 使用 Python
  • 使用 Flask 在 Web 上部署 Python 脚本

    您编写了一个令您引以为豪的 Python 脚本 现在您想向世界展示它 但how 大多数人不知道如何处理你的 py文件 将您的脚本转换为Python 网络应用程序是一个很好的解决方案 可以让您的代码可供广大受众使用 在本课程中 您将学习如何从
  • 继承和组合:Python OOP 指南(摘要)

    你探索过Python 中的继承和组合 您了解了继承和组合创建的关系类型 您还完成了一系列练习来了解如何在 Python 中实现继承和组合 在本课程中 您学习了如何 使用继承来表达是一个两个类之间的关系 评估继承关系是否正确 在Python中
  • 自定义数据类型

    当你通过一个目的到print 它使用以下方法将其转换为字符串str 功能 您可以创建一个 str 自定义对象上的方法来更改输出内容 class Person def init self name age self name name sel