iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么打印Python对象
  • 722
分享到

怎么打印Python对象

2023-06-02 03:06:18 722人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“怎么打印python对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么打印Python对象”吧!pprint 是“pretty printer”的简写,“pretty”的含

本篇内容主要讲解“怎么打印python对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么打印Python对象”吧!

pprint 是“pretty printer”的简写,“pretty”的含义是“漂亮的、美观的”,还有表示“相当地”的程度语气,因此它的含义便是:(相当)美观的打印。

这是个相当简单却有用的模块,主要用于打印复杂的数据结构对象,例如多层嵌套的列表、元组和字典等。

先看看 print() 打印的一个例子:

mylist = ["Beautiful is better than ugly.", "Explicit is better than implicit.", "Simple is better than complex.", "Complex is better than complicated."]print(mylist)# 结果如下:['Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', 'Complex is better than complicated.']

这是一个简单的例子,全部打印在一行里。

想象一下,如果对象中的元素是多层嵌套的内容(例如复杂的 JSON 数据),或者有超多的元素(例如在列表中存了很多 URL 链接),再打印出来会是怎样?

那肯定是一团糟的,不好阅读!

使用 pprint 模块的 pprint() 替代 print(),可以解决如下痛点:

  • 设置合适的行宽度,作适当的换行

  • 设置打印的缩进、层级,进行格式化打印

  • 判断对象中是否有无限循环,并优化打印内容

简单使用

语法:pprint(object, stream=None, indent=1, width=80, depth=None, *,compact=False)

默认的行宽度参数为 80,当打印的字符(character)小于 80 时,pprint() 基本上等同于内置函数 print(),当字符超出时,它会作美化,进行格式化输出:

import pprint# 打印上例的 mylistpprint.pprint(mylist)# 打印的元素是换行的(因为超出80字符):['Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', 'Complex is better than complicated.']

设置缩进为 4 个空格(默认为1)

pprint.pprint(mylist, indent=4)[ 'Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', 'Complex is better than complicated.']

设置打印的行宽

mydict = {'students': [{'name':'Tom', 'age': 18},{'name':'Jerry', 'age': 19}]}pprint.pprint(mydict)# 未超长:{'students': [{'age': 18, 'name': 'Tom'}, {'age': 19, 'name': 'Jerry'}]}pprint.pprint(mydict, width=20)# 超长1:{'students': [{'age': 18, 'name': 'Tom'}, {'age': 19, 'name': 'Jerry'}]}pprint.pprint(mydict, width=70)# 超长2:{'students': [{'age': 18, 'name': 'Tom'}, {'age': 19, 'name': 'Jerry'}]}

设置打印的层级(默认全打印)

newlist = [1, [2, [3, [4, [5]]]]]pprint.pprint(newlist, depth=3)# 超出的层级会用...表示[1, [2, [3, [...]]]]

优化循环结构的打印

当列表或其它数据结构中出现循环引用时,要完整打印出所有内容是不可能的。

所以 print 作了简化处理,就像上例一样,只打印外层的壳,而不打印内层循环的东西。

这种处理方式是简化了,但没有指出是谁导致了循环,还容易看漏。

pprint() 方法作了改进,遇到无限循环结构时,会表示成<Recursion on typename with id=number> 的格式。

还有个 saferepr() 方法,也是这样优化,而且返回的是个字符串

newlist = [1, 2]newlist.insert(0, newlist)# 列表元素指向列表自身,造成循环引用# 直接 print 的结果是:[[...], 1, 2]pprint.pprint(newlist)# [<Recursion on list with id=1741283656456>, 1, 2]pprint.saferepr(newlist)# '[<Recursion on list with id=1741283656456>, 1, 2]'

判断是否出现循环结构

有两个方法判断一个对象中是否出现无限循环:

pprint.isrecursive(newlist)# Truepprint.isreadable(newlist)# False

isreadable() 除了能像 isrecursive() 一样判断循环,还能判断该格式化内容是否可被 eval() 重构。

以上就是 pprint 模块的快捷入门介绍,除此之外,还有 pfORMat() 方法、PrettyPrinter 类,以及某些参数的使用等内容,我觉得没有大用,就不多说了。

最后,还有个小小的点:

用 pprint() 替换 print() 的技巧

在不考虑 print() 函数本身的参数的情况下,可以在引入 pprint 模块后,写上 “print = pprint.pprint”,令 print() 起到改头换面的效果:

import pprintprint = pprint.pprintmylist = ["Beautiful is better than ugly.", "Explicit is better than implicit.", "Simple is better than complex.", "Complex is better than complicated."]print(mylist)# 可对比本文开头的例子['Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', 'Complex is better than complicated.']

到此,相信大家对“怎么打印Python对象”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么打印Python对象

本文链接: https://www.lsjlt.com/news/228711.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么打印Python对象
    本篇内容主要讲解“怎么打印Python对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么打印Python对象”吧!pprint 是“pretty printer”的简写,“pretty”的含...
    99+
    2023-06-02
  • java怎么打印list中的对象
    在Java中,可以使用循环遍历List中的对象,并打印出每个对象的内容。可以通过以下代码实现: List<String>...
    99+
    2024-03-13
    java
  • 怎么优雅地打印一个Java对象
    本文小编为大家详细介绍“怎么优雅地打印一个Java对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么优雅地打印一个Java对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。提问者定义了这样一个类:publi...
    99+
    2023-06-16
  • [python]打印对齐
    一、数值类型(int、float) #  %d、%f是占位符 >>> a = 3.1415926 >>> print("%d"%a)    #%d只能输出整数,int类 3 >>>...
    99+
    2023-01-31
    python
  • 如何打印Proxy对象和ref对象的包
    本文小编为大家详细介绍“如何打印Proxy对象和ref对象的包”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何打印Proxy对象和ref对象的包”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。目标我希望新的co...
    99+
    2023-07-04
  • Python print函数:如何将对象打印输出
    目录描述语法使用示例打印对象指定分隔符打印到文件设定结尾字符串print与__repr__描述 print函数是Python的内置函数,它会将对象的__repr__特殊函数返回的字符...
    99+
    2024-04-02
  • 聊聊php怎么打印对象的所有方法
    随着PHP语言的发展,越来越多的开发者开始重视对象的使用和优化。在对象编程中,对象是一种数据类型,包含属性和方法,并且可以通过类来创建。在PHP中,我们可以使用对象来管理数据和执行各种操作。但是,在实际开发中,我们可能需要知道一个对象的所有...
    99+
    2023-05-14
  • js中console.log打印对象时属性缺失怎么办
    这篇文章主要介绍js中console.log打印对象时属性缺失怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 序在编写代码时,我们常常用 console.log() 的方式...
    99+
    2024-04-02
  • java直接打印对象的方法是什么
    在Java中,可以使用`System.out.println()`方法来直接打印对象。这个方法会自动调用对象的`toString()...
    99+
    2023-10-11
    java
  • 当地图对象被互斥锁锁定时打印地图对象
    php小编小新在这里向大家介绍一个关于互斥锁的实用技巧:当地图对象被互斥锁锁定时,如何打印地图对象。互斥锁是一种用于保护共享资源的机制,确保同时只有一个线程可以访问被锁定的资源。在本文...
    99+
    2024-02-10
  • python怎么打印菱形
    要打印菱形,可以使用嵌套循环来实现。以下是一个打印菱形的示例代码:```pythondef print_diamond(n):for...
    99+
    2023-08-31
    python
  • python怎么打印字符串
    本篇内容介绍了“python怎么打印字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Python中,字符串是最常用的数据类型。引号(&...
    99+
    2023-06-30
  • 怎么用python打印月历
    这篇文章主要为大家展示了“怎么用python打印月历”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用python打印月历”这篇文章吧。用python打印月历日历模块具有许多与基于日期的操作有...
    99+
    2023-06-27
  • python怎么打印当前文件的绝对路径并解决打印为空的问题
    这篇文章主要介绍“python怎么打印当前文件的绝对路径并解决打印为空的问题”,在日常操作中,相信很多人在python怎么打印当前文件的绝对路径并解决打印为空的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-05
  • python怎么打印日志文件
    在Python中,可以使用内置的logging模块来打印日志文件。以下是一个简单的示例代码: import logging # 设...
    99+
    2024-03-12
    python
  • python indent怎么打印JSON数据
    本文小编为大家详细介绍“python indent怎么打印JSON数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“python indent怎么打印JSON数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。说...
    99+
    2023-06-30
  • python怎么打印异常堆栈
    在Python中,可以使用`traceback`模块来打印异常的堆栈信息。下面是一个示例: import traceback tr...
    99+
    2023-10-27
    python
  • Python怎么打印标签内容
    在Python中,可以使用`print()`函数来打印标签内容。 假设有一个HTML标签如下: Hello, World! 要打印这...
    99+
    2023-10-28
    Python
  • python怎么打印数据类型
    要在Python中打印数据类型,可以使用type()函数。您可以将要检查的值作为参数传递给type()函数,它将返回该值的数据类型。...
    99+
    2024-03-11
    python
  • Python怎么打印变量类型
    要打印变量的类型,可以使用Python的内置函数type()来获取变量的类型并打印出来。例如: x = 5 print(type(x...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作