当前位置:首页 > Python技术文章 > python 打印出所有的对象/模块的属性(实例代码)

python打印出所有的对象/模块的属性代码详解

  • 发布时间:
  • 作者:码农之家原创
  • 点击:203

这篇文章主要知识点是关于python、打印对象、python 自定义对象的打印方法 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下相关资源

Python程序设计入门到实战

Python言语是现在市面上*火爆的程序设计语言之一,除开功能齐全以外,也有迅速入门、随时随地可扩大、社群营销兼容等特点。这书以16章的篇数迅速详细介绍Python言语的精要,包含编程设计

查看详情

python 打印出所有的对象/模块的属性(实例代码)

实例如下:

import sys

def print_all(module_):
  modulelist = dir(module_)
  length = len(modulelist)
  for i in range(0,length,1):
    print getattr(module_,modulelist[i])

print_all(sys) 

以上这篇python 打印出所有的对象/模块的属性(实例代码)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

python 自定义对象的打印方法

在python中,如果不重写自定义对象的__str__方法,打印出来的对象是一串类似于<__main__.Bean object at 0x1007da470>的字符串。这当然不是我们想要的结果。

于是:通过对__str__方法的重写,就可以返回我们想要的数据的展示。

但是,一个新的问题出现了。以后,如果要修改这个类的属性,那么要想正确的显示对象的属性。还得修改__str__方法。

有没有办法可以做到动态显示所有的属性呢?

当然是有的。

通过对对象的属性的收集,就可以实现动态的打印全部的属性。而且,更方便的是,我们可以将这种方法做成一个工具类。以后,自定义只需要继承该类,就可以实现对象的属性的完成打印了。ps:Python是支持多继承的,所以,继承该类实现格式化打印,并不影响原有逻辑。

看如下代码是如何实现对类属性的动态收集并打印的。

class AttrDisplay:
  def gatherAttrs(self):
    return ",".join("{}={}"
            .format(k, getattr(self, k))
            for k in self.__dict__.keys())
    # attrs = []
    # for k in self.__dict__.keys():
    #   item = "{}={}".format(k, getattr(self, k))
    #   attrs.append(item)
    # return attrs
    # for k in self.__dict__.keys():
    #   attrs.append(str(k) + "=" + str(self.__dict__[k]))
    # return ",".join(attrs) if len(attrs) else 'no attr'

  def __str__(self):
    return "[{}:{}]".format(self.__class__.__name__, self.gatherAttrs())

OK,似乎所有的工作都已经完成了,来简单测试一下吧:

class Bean(AttrDisplay):
  def __init__(self, id=1024, name='Jack Chen', job='Actor'):
    self.id = id
    self.name = name
    self.job = job

  def doSomething(self):
    return self.name + " doing something now ..."


if __name__ == '__main__':
  bob = Bean()
  print(bob)
# [Bean:id=1024,name=Jack Chen,job=Actor]

嗯,测试结果似乎和我们预期的一致。所以,这样就实现对自定义对象的打印。

以上这篇python 自定义对象的打印方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于Python的全部知识点内容总结,大家还可以在下方相关文章里找到Python调用C# Com dll组件的方、 python求最大值最小值的实、 Python工具整理推荐、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:python利用Future对象回调别的函数知识点总结

下一篇:Python安装whl包和tar.gz包的操作步骤

展开 +

收起 -

python打印对象 相关内容
深度学习入门:基于Python的理论与实现

本书是深度学习真正意义上的入门书,深入浅出地剖析了深度学习的原理和相关技术。书中使用Python3,尽量不依赖外部库或工具,从基本的数学知识出发,带领读者从零创建一个经典的深度学

查看详情
Python接口自动化测试

正确引导测试工程师攻破Python新手入门难题 出示可落地式的HTTP协议书插口自动化技术脚本制作、切切实实的可软件环境 有着《Python接口自动化测试》,就有着全套的源代码,依照这书的自然

查看详情
量化交易之路-用Python做股票量化分析

本书从对量化交易的正确认识出发,循序渐进地讲解了量化交易所需要了解的各种知识及工具,详解趋势跟踪、统计套利、机器学习等量化技术;提供了大量基于真实交易的实例

查看详情
从零开始学Python网络爬虫

本书详解网络爬虫的原理、工具、框架和方法,实战案例多,涵盖爬虫的3大方法、爬取数据的4大存储方式、Scrapy爬虫框架、30个网站信息提取等,适合爬虫技术初学者、爱好者及高等院校的相

查看详情
Python与机器学习实战

本书用到Numpy这个基础的科学计算库来进行算法代码的实现,能够从实现的过程中更好地理解机器学习算法的细节,以及了解Numpy的各种应用,适用于想了解传统机器学习算法的学生和从业者等

查看详情
Python科学计算

本书详细介绍Python科学计算中最常用的扩展库NumPy、SciPy、matplotlib、Pandas、SymPy、TTK、Mayavi、OpenCV、Cython,涉及数值计算、界面制作、三维可视化、图像处理、提高运算效率等多方面的内容。所

查看详情
Python游戏编程快速上手

本书通过小巧有趣的游戏来教授Python编程,采用直接展示游戏的源代码并通过实例来解释编程的原理的方式,帮助读者掌握Python游戏编程的基本技能,适合不同年龄和层次的Python编程初学者阅读

查看详情
Python程序设计与算法基础教程 查看详情
Python机器学习基础教程

这是一本机器学习入门书,以Python语言介绍,包含机器学习的基本概念及其应用;实践中最常用的机器学习算法以及这些算法的优缺点;待处理数据的呈现方式的重要性等内容

查看详情
python打印对象 学习笔记
网友NO.541726

python 以16进制打印输出的方法

打印整数16进制 num=10print('%#x'%num) 打印字符串中的16进制 arr='12342535'for i in arr:print('%#x'%ord(i)) 以上这篇python 以16进制打印输出的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

网友NO.187578

Python3内置模块pprint让打印比print更美观详解

概述 在我们使用内置打印函数print时,打印出的Python数据结构对象总是一行的输出的方式,这样对数据结构较复杂或数据较多的对象的显示并不美观,这时我们可以利用pprint输出美化数据结构对象。 pprint方法概览 美化输出 我们可以利用pprint中的PrettyPrinter控制输出的打印时的缩进,行宽、甚至打印深度等,定义类如下 class pprint.PrettyPrinter(indent = 1,width = 80,depth = None,stream = None,*,compact = False ) indent 缩进 width 宽度 depth 打印深度 stream 指输出流对象,stream = None输出流对象默认是sys.stdout compact 如果compact为false(默认值),则长序列中的每个项目将在单独的行上进行格式化。如果compact为true,则将在每个输出行上格式化适合宽度的项目。 import pprintL = [str(i)*20 for i in range(10)]pp = pprint.PrettyPrinter(indent=4)pp.pprint(L)print(L) 示例结果: [ '00000000000000000000', '……

网友NO.464208

用python打印菱形的实操方法和代码

python怎么打印菱形?下面给大家带来三种方法: 第一种 rows = int(input('请输入菱形边长:\n'))row = 1while row = rows: col = 1 # 保证每次内循环col都从1开始,打印前面空格的个数 while col = (rows-row): # 这个内层while就是单纯打印空格 print(' ', end='') # 空格的打印不换行 col += 1 print(row * '* ') # 每一行打印完空格后,接着在同一行打印星星,星星个数与行数相等,且打印完星星后print默认换行 row += 1 bottom = rows-1while bottom 0: col = 1 # 保证每次内循环col都从1开始,打印前面空格的个数 while bottom+col = rows: print(' ', end='') # 空格的打印不换行 col += 1 print(bottom * '* ') # 每一行打印完空格后,接着在同一行打印星星,星星个数与行数相等,且打印完星星后print默认换行 bottom -= 1 输出结果: 请输入菱形边长:5 * * * * * * * * * * * * * * * * * * * * * * * * * 第二种 s = '*'for i in range(1, 8, 2): pr……

网友NO.518684

python中while循环打印星星的四种形状

在控制台连续输出五行*,每一行星号数量一次递增【推荐阅读:Python视频教程】 * ** *** **** ***** #1.定义一个行计数器row = 1while row = 5: #定义一个列计数器 col = 1 #开始循环 while col = row: print('*',end='') col += 1 print('') row += 1 #1.定义一个行计数器row = 1while row = 5: #定义一个列计数器 col = 5 #开始循环 while col = row: print('*',end='') col -= 1 print('') row += 1 那么如果想让空格先,然后*呢 row = 1while row = 5: # 行数,循环五次 a = 1 col = 1 while a = 5 - row: # a控制每行的空格数=5-行数,例如:第一行为5-1=4个空格 print(' ', end='') # 不换行 a += 1 while col = row: # col控制*的数量=行数 print('*', end='') col += 1 print() row += 1 另外一种排列方式 row = 1while row = 5: # 行数,循环五次 a = 1 col = 1 while a = row - 1: # a控制每行的空格数=5-行数,例如:第一行为5-1=4个空格 print(' ', end='') # 不换行 a += 1 while col = 6-row……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757