Python__模块(代码-辅助)__contextlib / pprint

contextlib(简介)

上下文管理器。

实现自动的文件打开关闭以及线程操作。


contextlib(参考代码)

contextlib / with 区别

# 例子:with
class echo:
    def __enter__(self):
        print("enter")

    def __exit__(self, *args):
        print("exit")
        print("________________")

with echo() as e:
    print("test")
""" >>>
enter
test
exit
________________
"""

# 例子:contextlib
from contextlib import contextmanager

@contextmanager
def tag(name):
    print("<%s>" % name)
    yield
    print("</%s>" % name)

with tag("ul"):
    print("<li>line1</li>")
    print("<li>line2</li>")
""" >>>
<ul>
<li>line1</li>
<li>line2</li>
</ul>
"""
# 代码的执行顺序:
"""   
with语句首先执行yield之前的语句,因此打印出<h1>
yield调用会执行with语句内部的所有语句,因此打印出hello和world
最后执行yield之后的语句,打印出</h1>
"""

pprint(简介)

美化打印内容。


pprint(参数列表)

【语法】

pprint.PrettyPrinter(width,indent,compact,sort_dicts)

pprint.pprint(对象,流=无,缩进=1,宽度=80,深度=无,*, 紧凑=假,sort_dicts=真,underscore_numbers=假)

【参数】

width

(默认值80) 指定输出中每行所需的最大字符数。

indent

缩进 紧凑会影响长序列(列表、元组、集合等)的格式设置方式。

compact

行格式化

compact  为false(默认值)

则序列的每个项目都将在单独的行上进行格式化

如果紧凑为真,则每个输出行将设置宽度范围内适合的任意数量的项目。

sort_dicts

键排序

sort_dicts为True(默认值),则字典的格式将按键排序。

否则将按广告插入顺序显示。


pprint(参考代码)

简单例子

import pprint

# 简化版
obj = {"word": {"test": "测试"}, "fruit": {"apple": "苹果"}}
pprint.pprint(obj)
# 样式版
words = {
    "apple": "苹果",
    "banana": "香蕉",
    "watermelon": "西瓜",
    "grape": "葡萄",
    "orange": "橙子",
}
pprint.pprint(words)
p = pprint.PrettyPrinter(width=1, indent=1, compact=True, sort_dicts=False)
p.pprint(words)

猜你喜欢

转载自blog.csdn.net/werdasooooo/article/details/134927992
今日推荐