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)