如何使用repr调试python程序
作者:Tynam.Yang 发布时间:2023-10-11 21:39:15
标签:repr,调试,python,程序
一般调试程序的时候都比较倾向print,利用直接打印的方法作出判断,但是print只能打印出结果,对类型无法作出判断。例如:
复制代码
a = 5
b = '5'
print(a)
print(b)
结果为:
5
5
复制代码
对于a和b从表面看是一样的,可能就会默认为a == b
实则a为int类型,b为string类型
再用repr看看结果:
复制代码
a = 5
b = '5'
print(repr(a))
print(repr(b))
结果为:
5
'5'
复制代码
对于动态的python对象来说,利用repr也是很方便的:
复制代码
class OpenClass(object):
def __init__(self, x, y):
self.x = x
self.y = y
obj = OpenClass(2,3)
print(obj)
# 结果为:<__main__.OpenClass object at 0x101cb7390>
复制代码
用repr重建对象:
复制代码
class OpenClass(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return 'OpenClass(%d,%d)'%(self.x, self.y)
obj = OpenClass(2,3)
print(obj)
# 结果为:OpenClass(2,3)
复制代码
对于print只能打印出易于阅读的信息,而类型则显示不出来
repr则显示出类型,简明的展示出数据信息
来源:https://www.cnblogs.com/tynam/p/8670825.html


猜你喜欢
- 前言近几日迫于被辅导员三番五次的提醒每日一报打卡,就想着去写个脚本挂在服务器上定时执行。经过我不懈的努力,最终选择了seleniumsele
- 什么是 channel 管道它是一个数据管道,可以往里面写数据,从里面读数据。channel 是 goroutine 之间数据通信桥梁,而且
- 一、访问者模式(Visitor Pattern)数据结构中保存着许多元素,当我们希望改变一种对元素的处理方式时,要避免重复的修改数据结构。那
- Pycharm时一个非常好用的IDE,但是一开始的时候甚至会因为.py文件不能运行而束手无策。。。 这里需要说明一下Pycharm的作用,P
- 判断python中的一个字符串是否为空,可以使用如下方法1、使用字符串长度判断len(s) ==0 则字符串为空#!/user/local/
- 一、Python下载1.进入Python官网:https://www.python.org/2.选择windows版本(Download &
- 使用定时功能对于我们想要快速获取某个数据来说,是一个非常好的方法。这样我们就不用苦苦守在电脑屏幕前,只为蹲到某个想要的东西。在之前我们已经讲
- 前言有时候python自带异常不够用,如同java,python也可以自定义异常,并且可以手动抛出。注意,自定义异常只能由自己抛出。pyth
- Seaborn - 绘制多标签的混淆矩阵、召回、精准、F1导入seaborn\matplotlib\scipy\sklearn等包:impo
- 需求有多个文件地理数据库(gdb),数据库内有多个面要素类图层,每个图层不能有自重叠,也不能和其他图层重叠。所以,需要为每个文件地理数据库(
- 前言随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Python语言的简洁性、易读性以及可扩展性,特别是在开源工具和深度学习
- 本文实例讲述了PHP设计模式之装饰器模式定义与用法。分享给大家供大家参考,具体如下:什么是装饰器模式作为一种结构型模式, 装饰器(Decor
- 前言最近工作中需要开发前端操作远程虚拟机的功能,简称WebShell. 基于当前的技术栈为react+django,调研了一会发现大部分的后
- 目录mapfiltersomeeveryfindIndexpipe参考答案一、返回函数接受一个参数二、返回函数接受不定参数实现 lodash
- ASCII码转换为int:ord('A') 65int转为ASCII码:chr(65) 'A'题目内容:实现
- 简介困扰在 Python 中使用并发编程来提高效率对于数据科学家来说并不罕见。在后台观察各种子进程或并发线程以保持我的计算或 IO 绑定任务
- 如何导入SQL数据库如何将现成的数据库导入到MySQL中?有两种方式:通过终端命令行语句导入:mysql> source SQL文件的
- GO实现内存数据库实现Redis的database层(核心层:处理命令并返回)https://github.com/csgopher/go-
- 如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据。对于这些临时数据,Oracle数据库
- 目录机器人api接口调用接口封装机器人实现两个机器人聊天聊天文字转语音总结众所周知,现在网上有很多非常智能bushi(智障)的AI机器人接口