Python魔法方法之 __str__

2023-11-12

1.调用时机

使用print打印对象的时候会使用到__str__方法 例:print(对象)
1.如果没有定义__str__方法,print(对象)则会打印对象的引用地址
2.如果自己定义了__str__方法,print(对象)则会打印方法的返回值

2.应用场景

使用print(对象)打印输出对象的属性信息

3.注意事项

必须使用return返回字符串类型

4.示例

实现:使用print打印出Cat类对象的属性信息
首先我们可以创建一个Cat类,包含有属性name&age,创建一个__init__方法来初始化每个Cat类对象的公共属性
,创建一个__str__方法来实现我们所需要实现的输出结果
1.首先我们不重写__str__方法,看看会输出什么

'''
类:Cat
属性:name,age
方法:__init__、__str__
'''
class Cat:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    # def __str__(self):
    #     return f"{self.name},{self.age}"

tom=Cat("tom",18)
print((tom))

输出结果为tom对象的地址
在这里插入图片描述
重写__str__方法重新运行

'''
类:Cat
属性:name,age
方法:__init__、__str__
'''
class Cat:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def __str__(self):
        return f"{self.name},{self.age}"

tom=Cat("tom",18)
print((tom))

输出结果为我们在__str__方法中返回的name&age信息
在这里插入图片描述
如果我们在__str__方法中不使用return返回,看看效果怎么样

'''
类:Cat
属性:name,age
方法:__init__、__str__
'''
class Cat:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def __str__(self):
        print(self.name)
        # return f"{self.name},{self.age}"

tom=Cat("tom",18)
print((tom))

输出结果出现报错
在这里插入图片描述
提示我们__str__返回的信息类型错误,非字符串类型
接下来我们再把return加上,看看效果

'''
类:Cat
属性:name,age
方法:__init__、__str__
'''
class Cat:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def __str__(self):
        print(self.name)
        return f"{self.name},{self.age}"

tom=Cat("tom",18)
print((tom))

在这里插入图片描述
这时则正常返回对象信息

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python魔法方法之 __str__ 的相关文章

  • Mac OS 上的诗歌安装失败,显示“should_use_symlinks”

    我正在尝试使用以下命令安装诗歌 curl sSL https install python poetry org python3 但它失败了 但有以下例外 例外 此版本的 python 无法在不使用符号链接的情况下创建 venvs 下面是详
  • Python 3 os.urandom

    在哪里可以找到完整的教程或文档os urandom 我需要获得一个随机 int 来从 80 个字符的字符串中选择一个字符 如果你只需要一个随机整数 你可以使用random randint a b 来自随机模块 http docs pytho
  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • Sublime Text 插件开发中的全局 Python 包

    一 总结 我不知道 Sublime Text 插件开发人员如何使用 Sublime Text 查找全局 Python 包 而不是 Sublime Text 目录的 Python 包 Sublime Text使用自己的Python环境 而不是
  • 如何以“正确”的方式处理带有空字节的 Python unicode 字符串?

    Question PyWin32 似乎很乐意将 null 终止的 unicode 字符串作为返回值 我想以 正确 的方式处理这些字符串 假设我得到一个像这样的字符串 u C Users Guest MyFile asy x00 x00sy
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 使用 python 中的公式函数使从 Excel 中提取的值的百分比相等

    import xlrd numpy excel Users Bob Desktop wb1 xlrd open workbook excel assignment3 xlsx sh1 wb1 sheet by index 0 colA co
  • Python 中的流式传输管道

    我正在尝试使用 Python 将 vmstat 的输出转换为 CSV 文件 因此我使用类似的方法转换为 CSV 并将日期和时间添加为列 vmstat 5 python myscript py gt gt vmstat log 我遇到的问题是
  • 从扫描文档中提取行表 opencv python

    我想从扫描的表中提取信息并将其存储为 csv 现在我的表提取算法执行以下步骤 应用倾斜校正 应用高斯滤波器进行去噪 使用 Otsu 阈值进行二值化 进行形态学开局 Canny 边缘检测 进行霍夫变换以获得表格行 去除重复行 10像素范围内相
  • Django send_mail SMTPSenderRefused 530 与 gmail

    一段时间以来 我一直在尝试使用 Django 从我正在开发的网站接收电子邮件 现在 我还没有部署它 并且我正在使用Django开发服务器 我不知道这是否会影响它 这是我的 settings py 配置 EMAIL BACKEND djang
  • Geodjango距离查询未检索到正确的结果

    我正在尝试根据地理位置的接近程度来检索一些帖子 正如您在代码中看到的 我正在使用 GeoDjango 并且代码在视图中执行 问题是距离过滤器似乎被完全忽略了 当我检查查询集上的距离时 我得到了预期距离 1m 和 18km 但 18km 的帖
  • SMTP_SSL SSLError: [SSL: UNKNOWN_PROTOCOL] 未知协议 (_ssl.c:590)

    此问题与 smtplib 的 SMTP SSL 连接有关 当与 SMTP 无 ssl 连接时 它正在工作 在 SMTP SSL 中尝试相同的主机和端口时 出现错误 该错误仅基于主机 gmail 设置也工作正常 请检查下面的示例 如果 Out
  • 使用 Pandas 计算 delta 列

    我有一个数据框 如下所示 Name Variable Field A 2 3 412 A 2 9 861 A 3 5 1703 B 3 5 1731 A 4 0 2609 B 4 0 2539 A 4 6 2821 B 4 6 2779 A
  • 使用 Keras np_utils.to_categorical 的问题

    我正在尝试将整数的 one hot 向量数组制作为 keras 将能够使用的 one hot 向量数组来拟合我的模型 这是代码的相关部分 Y train np hstack np asarray dataframe output vecto
  • 返回表示每组内最大值的索引的一系列数字位置

    考虑一下这个系列 np random seed 3 1415 s pd Series np random rand 100 pd MultiIndex from product list ABDCE list abcde One Two T
  • 将seaborn.palplot轴添加到现有图形中以可视化不同调色板

    将seaborn人物添加到子图中是usually https seaborn pydata org examples cubehelix palette html创建图形时通过传递 ax 来完成 例如 sns kdeplot x y cma
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • Python SSL X509:KEY_VALUES_MISMATCH

    Python HTTPS server from http server import HTTPServer SimpleHTTPRequestHandler import ssl https stackoverflow com a 408
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que
  • 使用ssl和socket的python客户端身份验证

    我有一个 python 服务器 需要客户端使用证书进行身份验证 我如何制作一个客户端脚本 使用客户端证书由 python 中的服务器使用 ssl 和套接字模块进行身份验证 有没有仅使用套接字和 ssl 而不扭曲的示例 from OpenSS

随机推荐

  • 以太网流量控制——PAUSE帧

    http www tuicool com articles Bzu2uuf 今天在测试DPDK性能的时候 发现发包工具的发包速率无法提升上去 千兆网卡设置速率70W qps 只能发出1W的速率 抓包发现有大量的PAUSE流控帧 一 PAUS
  • High-resolution Face Swapping via Latent Semantics Disentanglement

    High resolution Face Swapping via Latent Semantics Disentanglement 人脸视频交换 从浅层派生结构属性 从深层派生外观属性 结构转移潜在方向 进一步分离结构属性中的身份和姿态信
  • 【算法学习笔记】20:朴素Dijkstra与堆优化Dijkstra(无负权边单源点最短路)

    Dijkstra算法用于在所有边权都非负的图上 求单源点最短路 设 n n n是图上结点的数量 m m m是边的数量 则朴素Dijkstra算法的时间复杂度是 O
  • Oracle 定时任务详解(dbms_job)

    文章目录 1 概述 2 dbms job 2 1 提交 2 2 暂停 2 3 修改 2 4 运行 2 5 删除 1 概述 1 数据来源包 dbms job Oracle 10g 前常用 2 目前已被 dbms scheduler 所取代 且
  • 百亿补贴通用H5导航栏方案

    背景 在移动端页面中 由于屏幕空间有限 导航条扮演着非常重要的角色 提供了快速导航到不同页面或功能的方式 用户也通常会在导航条中寻找他们感兴趣的内容 因此导航条的曝光率较高 在这样的背景下 提供一个动态灵活的导航条 为产品赋能 变得尤其重要
  • unity 获取小车速度及前进或者后退

    项目需要获得小车移动的数据 用来驱动轮子正传或者反转 所以得想法获取小车的移动量 首先想到的是 使用Unity的API Rigidbody velocity 但是实际操作起来却不是那么回事 貌似Rigidbody velocity只能响应物
  • 黑苹果必备OC配置工具OpenCore Configurator 2.12.0.0中文版

    OpenCore Configurator 中文版是非常优秀的一款黑苹果OC配置工具 可以通过提供更加通用和模块化的系统来解决Clover带来的限制和问题 拦截内核加载以插入高级的rootkit 而该rootkit旨在替代Clover Op
  • Leetcode 78. 子集(回溯法)

    子集 回溯法 class Solution List
  • 内网渗透篇

    域信息搜集命令 1 查询当前环境 whoami ipconfig all 2 查询当前域用户 net user domain 3 查询域控 net time 4 查询域工作组 net group domain 5 查询域管理用户 net g
  • Java学习笔记

    public char charAt int index 根据索引返回字符 public int length 返回此字符的长度 数组的长度 数组名 length 字符串的长度 字符串对象 length StringBuilder Stri
  • 黑马程序员-微信小程序-Day3笔记(P38-P59)

  • CMD命令进入某个目录

    1 开始 gt 运行 gt CMD 2 进入某个磁盘 直接盘符代号 如D 不用CD 命令切换 3 进入除根录以下的文件夹 cd 文件夹路径 例如我要进入 E Program Files PHP 就 输入 E 回车 注 不 能在一打开CMD的
  • 折半查找不成功的平均查找长度怎么算_算法基础:常用的查找算法知识笔记

    1 查找表和查找效率的概念查找表是指由同一类型的数据元素构成的集合 分为静态查找表和动态查找表 1 1 静态查找表1 查询某个特定元素是否在查找表的集合当中2 查询某个特定元素的各种属性 1 2 动态查找表1 在查找表中插入一个数据元素2
  • 如何在命令行中使用 ftp 命令上传和下载文件

    转摘 https linux cn article 6746 1 html 本文中 介绍在 Linux shell 中如何使用 ftp 命令 包括如何连接 FTP 服务器 上传或下载文件以及创建文件夹 尽管现在有许多不错的 FTP 桌面应用
  • 音视频同步-时间戳

    媒体内容在播放时 最令人头痛的就是音视频不同步 从技术上来说 解决音视频同步问题的最佳方案就是时间戳 首先选择一个参考时钟 要求参考时钟上的时间是线性递增的 生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳 一般包括开始时间和结束时
  • vuejs+element UI table的常见的属性及事件

    一 table组件的方法 事件 查看官网 二 常用的事件 属性 一 属性 1 多选框 type selection 需要实现勾选的功能 在
  • BearPi-HM Micro 开发环境搭建

    1 资料下载 Ubuntu20 04 大小8G 下载地址 百度云 Ubuntu18 04 大小4 8G 下载地址 百度云 STM32CubeProgrammer JRE 虚拟机VMware Workstation MobaXterm工具 R
  • 华大(小华)HC32L130工程创建

    一 我们先来认识一下华大驱动库包下的文件功能 注意 华大提供的包是没有M0 内核标准文件的 HC32L130 是M0 ST提供的驱动库包是有的 就是CORE文件夹 第一步 创建文件夹目录 具体这个创建文件夹目录的含义可以看STM32工程创建
  • 梦幻可以在2个服务器无限转吗,如过能跨大区转服务器就好了

    前几天听个玩魔兽的朋友说 魔兽世界可以跨大区转服务器 不过需要一点手续费用 我大概记得他说要100元点卡钱 如果梦幻也能跨大区转服务器该多好 我有好多朋友在别的区玩 一直想叫我过去 可是我实在是不舍得现在满级满修的夫妻号 毕竟我和未婚妻辛辛
  • Python魔法方法之 __str__

    1 调用时机 使用print打印对象的时候会使用到 str 方法 例 print 对象 1 如果没有定义 str 方法 print 对象 则会打印对象的引用地址 2 如果自己定义了 str 方法 print 对象 则会打印方法的返回值 2