首页 > 其他分享 >如何使用 print() 打印类实例?

如何使用 print() 打印类实例?

时间:2023-11-03 18:45:19浏览次数:34  
标签:__ ... 打印 repr Test 实例 print

内容来自 DOC https://q.houxu6.top/?s=如何使用 print() 打印类实例?

当我尝试使用 print() 打印一个类的实例时,我得到的输出是这样的:

>>> class Test():
...     def __init__(self):
...         self.a = 'foo'
...
>>> print(Test())
<__main__.Test object at 0x7fc9a9e36d60>

如何让 print 显示一些自定义的内容(例如包含 a 属性值的内容)?也就是说,如何定义当类被打印时(它们的 字符串表示)会出现什么?


如果你想要为类本身定义行为(在这种情况下,即让 print(Test) 显示一些自定义的内容,而不是 <class __main__.Test> 或类似的内容),可以参考这个链接。实际上,技巧是基本相同的,但应用起来更棘手。


>>> class Test:
...     def __repr__(self):
...         return "Test()"
...     def __str__(self):
...         return "member of Test"
... 
>>> t = Test()
>>> t
Test()
>>> print(t)
member of Test

当使用 print 函数打印对象时,会调用 __str__ 方法,而当使用 repr() 函数或交互式提示符查看对象时,会调用 __repr__ 方法。

如果没有定义 __str__ 方法,Python 将使用 __repr__ 的结果进行打印。如果定义了 __str__ 但没有定义 __repr__,Python 将使用上面的例子作为 __repr__,但仍然使用 __str__ 进行打印。

标签:__,...,打印,repr,Test,实例,print
From: https://www.cnblogs.com/xiaomandujia/p/17808193.html

相关文章

  • 浅谈PHP框架中类成员方法的类类型形参是怎么利用ReflectionClass反射类自动实例化的(应
    说明1.或许是全网首发,我翻过很多文章,从未有一个博主讲过这个东西,很多博主只讲了IOC、DI和反射机制的常见用法,因类类型形参反射的巧妙用法有相当高的难度和学习盲区,所以从未有人讲过类类型的形参它怎么就被自动实例化的。2.在Laravel框架,或者是其它框架中,类的成员方法中形参的......
  • 去除iframe下载和打印
    最近项目开发中,有需求提出去除浏览器浏览PDF时的打印和下载按钮,网上查询后,大多是使用了第三方插件pdf.js,而本人也是用此插件实现了。但是甲方还是希望保持浏览器自带的浏览,于是我又想办法进行处理,最终从元素覆盖下载和打印按钮的方式来进行处理。基本思路:使用定位覆盖+根据......
  • 水仙花数的打印(仅个人探索)
             详解在代码中已标示,数据范围可更改            //自己摸索的水仙花数(φ(◎ロ◎;)φ)#include<tgmath.h>#include<math.h>intmain(){ intsum=0; inti=0;//floor为向下取整符号,对数函数算出的指数即位数减一 头......
  • 使用Chrome的Element Inspector在打印预览模式下?
    内容来自DOChttps://q.houxu6.top/?s=使用Chrome的ElementInspector在打印预览模式下?我正在开发一个网站,需要在打印预览模式下进行工作。通常,当我遇到布局问题时,我会使用Chrome的ElementInspector。然而,在打印预览模式下并不存在ElementInspector。是否有Chrome插件或其......
  • c++ 程序打印 core dump 信息
    linux环境下c++程序打印coredump信息linux信号机制c++打印堆栈信息#include<signal.h>#include<execinfo.h>#include<dlfcn.h>#include<cxxabi.h>#include<QFile>#include<QTextStream>//捕获信号,对于这些信号都执行coreDumpHandlesignal(SIG......
  • 【视频】风险价值VaR原理与Python蒙特卡罗Monte Carlo模拟计算投资组合实例|附代码数
    原文链接:http://tecdat.cn/?p=22862 最近我们被客户要求撰写关于风险价值的研究报告,包括一些图形和统计输出。风险价值(VaR)是一种统计数据,用于量化公司、投资组合在特定时间范围内可能发生的财务损失程度什么是风险价值(VaR)?该指标最常被投资银行和商业银行用来确定其机构......
  • WSD、USB 和 TCP/IP 端口是连接和使用打印机的三种不同方法
    WSD、USB和TCP/IP端口是连接和使用打印机的三种不同方法,各自的特点如下:WSD(WebServicesonDevices)端口:WSD是一种基于网络的打印服务,允许计算机和打印机在局域网中通过网络发现彼此。它使用的是一种标准的网络协议,支持动态设备发现和配置。通常用于无线和有线的网络打......
  • vue3 google浏览器格式化控制台打印的数据
    ......
  • for语句练习(打印1-10)
    #include<stdio.h>#include<stdlib.h>intmain(){  inti=0;  for(i=1;i<=10;i++)//i=1为初始化部分;i<=10为判断部分;i++为调整部分  {    printf("%d",i);  }  return0;}......
  • for语句与while语句对比(打印1-10)(加入continue)
    //for#include<stdio.h>intmain(){  inti=0;  for(i=1;i<=10;i++)  {    if(i==5)      continue;    printf("%d",i);  }  return0;}//结果为1234 678910//while#include<stdio.h>intmain(){ ......