在上下文中更改python的打印行为

瘦身吉姆

我希望(仅出于调试目的)能够更改打印在上下文中的工作方式

def printing_foo(a):
    print(a)
    return a

print("{")
with print_prefix(" " * 4):
    list(map(printing_foo, range(4)))
print("}")

会产生:

{
    0
    1
    2
    3
}

就像您可以为小数设置本地上下文一样。

还是我必须编写自己的上下文相关打印并导入并在所有模块中使用它?

马丁·彼得斯(Martijn Pieters)

您可以使用上下文管理器捕获sys.stdout,然后在print()写入的内容之前添加前缀

from contextlib import contextmanager
import sys

class Prefixer(object):
    def __init__(self, prefix, orig):
        self.prefix = prefix
        self.orig = orig
    def write(self, text):
        self.orig.write(self.prefix + text)
    def __getattr__(self, attr):
        return getattr(self.orig, attr)     

@contextmanager
def prefix_stdout(prefix):
    current_out = sys.stdout
    try:
        sys.stdout = Prefixer(prefix, current_out)
        yield
    finally:
        sys.stdout = current_out

并用作:

with prefix_stdout('Prefixed: '):
    print('Hello world!')

但要考虑到print()调用通常将数据stdout分别写入不同的块中;最后的换行符是单独的写操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python 在上下文后打印行

来自分类Dev

Vim-根据语法在上下文中更改命令的行为

来自分类Dev

在上下文中丢弃模型的更改

来自分类Dev

在上下文中解析类型

来自分类Dev

这在上下文中无效

来自分类Dev

在上下文中评估变量

来自分类Dev

打印Python行为上下文到控制台

来自分类Dev

gdb:不在上下文中的结构的大小?

来自分类Dev

在上下文中不使用Where语句

来自分类Dev

ReactJs在上下文中添加多个reducer

来自分类Dev

无法在上下文中解析本地变量

来自分类Dev

在上下文中不使用Where语句

来自分类Dev

在上下文之外使用上下文中的字符串

来自分类Dev

Python在“ with”上下文中处理参数

来自分类Dev

多处理上下文中Python日志记录模块的混乱行为

来自分类Dev

多处理上下文中Python日志记录模块的混乱行为

来自分类Dev

子节点上下文中拼接方法的奇怪行为

来自分类Dev

Python:使用自定义sys.excepthook在异常发生之前在上下文中的行号处恢复程序

来自分类Dev

Scrapy-在脚本的上下文中打印管道数据

来自分类Dev

如何在临时上下文中回滚更改?

来自分类Dev

在原型上下文中更改“ this”以替换功能主体

来自分类Dev

通过SpringEl在上下文中创建和设置地图

来自分类Dev

在上下文中未找到owin.Environment项目-仅在服务器上

来自分类Dev

变量在上下文中不存在,但已明确定义

来自分类Dev

Behat 3-如何在上下文中检索自定义扩展

来自分类Dev

如何使用factory_girl在上下文中创建模型?

来自分类Dev

在上下文中找不到类型,可能是映射问题

来自分类Dev

在上下文中找不到C#DllImport,但是Interpor Services已绑定在

来自分类Dev

@Cacheevict有时在上下文中缺少对象(EL1011E)

Related 相关文章

  1. 1

    Python 在上下文后打印行

  2. 2

    Vim-根据语法在上下文中更改命令的行为

  3. 3

    在上下文中丢弃模型的更改

  4. 4

    在上下文中解析类型

  5. 5

    这在上下文中无效

  6. 6

    在上下文中评估变量

  7. 7

    打印Python行为上下文到控制台

  8. 8

    gdb:不在上下文中的结构的大小?

  9. 9

    在上下文中不使用Where语句

  10. 10

    ReactJs在上下文中添加多个reducer

  11. 11

    无法在上下文中解析本地变量

  12. 12

    在上下文中不使用Where语句

  13. 13

    在上下文之外使用上下文中的字符串

  14. 14

    Python在“ with”上下文中处理参数

  15. 15

    多处理上下文中Python日志记录模块的混乱行为

  16. 16

    多处理上下文中Python日志记录模块的混乱行为

  17. 17

    子节点上下文中拼接方法的奇怪行为

  18. 18

    Python:使用自定义sys.excepthook在异常发生之前在上下文中的行号处恢复程序

  19. 19

    Scrapy-在脚本的上下文中打印管道数据

  20. 20

    如何在临时上下文中回滚更改?

  21. 21

    在原型上下文中更改“ this”以替换功能主体

  22. 22

    通过SpringEl在上下文中创建和设置地图

  23. 23

    在上下文中未找到owin.Environment项目-仅在服务器上

  24. 24

    变量在上下文中不存在,但已明确定义

  25. 25

    Behat 3-如何在上下文中检索自定义扩展

  26. 26

    如何使用factory_girl在上下文中创建模型?

  27. 27

    在上下文中找不到类型,可能是映射问题

  28. 28

    在上下文中找不到C#DllImport,但是Interpor Services已绑定在

  29. 29

    @Cacheevict有时在上下文中缺少对象(EL1011E)

热门标签

归档