Dav*_*ave 5 python printing formatting
我正在用 python 打印到控制台。我正在寻找一段代码,以便一行代码之后的所有打印语句在开头都有 4 个空格。例如。
print('Computer: Hello world')
print.setStart(' ')
print('receiving...')
print('received!')
print.setStart('')
print('World: Hi!')
Run Code Online (Sandbox Code Playgroud)
输出:
Computer: Hello world
receiving...
received!
World: Hi!
Run Code Online (Sandbox Code Playgroud)
这将有助于标记函数中包含的所有输出,以及设置何时标记函数输出。这可能吗?
您可以定义一个print函数,该函数首先打印您的前缀,然后在内部调用内置print函数。您甚至可以让您的自定义print()函数查看调用堆栈并相应地确定要使用多少个空格作为前缀:
import builtins
import traceback
def print(*objs, **kwargs):
my_prefix = len(traceback.format_stack())*" "
builtins.print(my_prefix, *objs, **kwargs)
Run Code Online (Sandbox Code Playgroud)
测试一下:
def func_f():
print("Printing from func_f")
func_g()
def func_g():
print ("Printing from func_g")
func_f()
Run Code Online (Sandbox Code Playgroud)
输出:
Run Code Online (Sandbox Code Playgroud)Printing from func_f Printing from func_g
恢复到内置print()函数:
当您完成自定义打印并想开始使用内置print()函数时,只需使用del“删除”您自己的打印定义即可:
del print
Run Code Online (Sandbox Code Playgroud)
为什么不定义自己的自定义函数并在需要时使用它:
def tprint(*args):
print(' ', *args)
Run Code Online (Sandbox Code Playgroud)
它将像这样使用:
print('Computer: Hello world')
tprint('receiving...')
tprint('received!')
print('World: Hi!')
Run Code Online (Sandbox Code Playgroud)
输出:
Computer: Hello world
receiving...
received!
World: Hi!
Run Code Online (Sandbox Code Playgroud)