zoukankan      html  css  js  c++  java
  • pprint模块解析

            pprint模块提供了打印任意python数据结构的方法,如果这个数据结构不是python的基本类型,则可能无法打印结果。

            pprint模块定义了一个类:
            pprint.PrettyPrinter(...)
            构造一个PrettyPrinter实例,通过stream参数设置输出流,默认为sys.stdout,其它三个可选参数用来控制输出格式,indent:缩进,默认为1;depth:控制输出的层数,如果要打印的的数据结构层数太多,超出的层数将以...输出,默认情况下,对输出层数是没有限制的;width,输出宽度,默认为80个字母。
            示例
    1. >>>import pprint
    2. >>> stuff =['spam','eggs','lumberjack','knights','ni']
    3. >>> stuff.insert(0, stuff[:])
    4. >>> pp = pprint.PrettyPrinter(indent=4)
    5. >>> pp.pprint(stuff)
    6. [['spam','eggs','lumberjack','knights','ni'],
    7. 'spam',
    8. 'eggs',
    9. 'lumberjack',
    10. 'knights',
    11. 'ni']
    12. >>> tup =('spam',('eggs',('lumberjack',('knights',('ni',('dead',
    13. ...('parrot',('fresh fruit',))))))))
    14. >>> pp = pprint.PrettyPrinter(depth=6)
    15. >>> pp.pprint(tup)
    16. ('spam',('eggs',('lumberjack',('knights',('ni',('dead',(...)))))))
            PrettyPrinter支持一下几种方法:
            pprint.pformat(object[, indent[, width[, depth]]])
            返回一个格式化的字符串
            pprint.pprint(object[, stream[, indent[, width[, depth]]]])
            在输出流中打印格式化信息,如果没有提供stream,则默认使用sys.out。
    1. >>>import pprint
    2. >>> stuff =['spam','eggs','lumberjack','knights','ni']
    3. >>> stuff.insert(0, stuff)
    4. >>> pprint.pprint(stuff)
    5. [<Recursion on list with id=...>,
    6. 'spam',
    7. 'eggs',
    8. 'lumberjack',
    9. 'knights',
    10. 'ni']
            pprint.isreadable(object)
            判断对象的表示是否'可读',如果是递归对象,则返回False
            pprint.isrecursive(object) 
            判断对象是否递归
            pprint.saferepr(object)

            返回对象的字符串表示,如果是递归对象,则用 <Recursion on typename with id=number>替代递归引用。

    1. >>> pprint.saferepr(stuff)
    2. "[<Recursion on list with id=...>, 'spam', 'eggs', 'lumberjack', 'knights', 'ni']"
            1.PrettyPrinter对象
            PrettyPrinter对象有以下几种方法。
            PrettyPrinter.pformat(object)
            PrettyPrinter.pprint(object)
            PrettyPrinter.isreadable(object)
            PrettyPrinter.isrecursive(object) 
            PrettyPrinter.format(object, context, maxlevels, level) 
            返回三个参数,一个是格式化字符串,一个判断结果是否可读的标志,一个判断对象是否递归的标志。第一个参数是要格式化输出的对象,
            2.pprint示例
    1. >>>import pprint
    2. >>> tup =('spam',('eggs',('lumberjack',('knights',('ni',('dead',
    3. ...('parrot',('fresh fruit',))))))))
    4. >>> stuff =['a'*10, tup,['a'*30,'b'*30],['c'*20,'d'*20]]
    5. >>> pprint.pprint(stuff)
    6. ['aaaaaaaaaa',
    7. ('spam',
    8. ('eggs',
    9. ('lumberjack',
    10. ('knights',('ni',('dead',('parrot',('fresh fruit',)))))))),
    11. ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'],
    12. ['cccccccccccccccccccc','dddddddddddddddddddd']]
    13. >>> pprint.pprint(stuff, depth=3)
    14. ['aaaaaaaaaa',
    15. ('spam',('eggs',(...))),
    16. ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'],
    17. ['cccccccccccccccccccc','dddddddddddddddddddd']]
    18. >>> pprint.pprint(stuff, width=60)
    19. ['aaaaaaaaaa',
    20. ('spam',
    21. ('eggs',
    22. ('lumberjack',
    23. ('knights',
    24. ('ni',('dead',('parrot',('fresh fruit',)))))))),
    25. ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
    26. 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'],
    27. ['cccccccccccccccccccc','dddddddddddddddddddd']]
     

     
     





  • 相关阅读:
    调用微信扫一扫接口
    Http错误代码解释
    php goto的用法
    Yii2.0-生成二维码实例
    飞鹅WiFi打印机配置,php调用接口
    HTML5 为什么只需要写 <!DOCTYPE HTML>?
    VueJs之 v-bind
    react 组件导出
    前端代码规范
    git与github的文件推送
  • 原文地址:https://www.cnblogs.com/fireflow/p/4841431.html
Copyright © 2011-2022 走看看