如何模拟Python的print()函数?适配sep/end参数与colorama着色
完善支持print参数的带色打印函数
要实现完全模拟print()的带色打印,核心思路是复用原生print的参数处理逻辑,仅给每个输出对象添加颜色前缀即可。以下是完善后的代码:
import sys from colorama import init, Fore # 初始化colorama,兼容Windows终端 init(autoreset=True) # autoreset=True可自动重置颜色,避免后续输出被污染 # 定义全局颜色变量,示例设为绿色 console_color = Fore.GREEN def pprint(*objects, sep=' ', end='\n', file=sys.stdout, flush=False): # 将每个对象转为字符串并添加颜色前缀 colored_objects = [console_color + str(obj) for obj in objects] # 调用原生print处理所有参数逻辑 print(*colored_objects, sep=sep, end=end, file=file, flush=flush)
代码说明:
- 函数参数完全对齐原生
print,包括sep、end、file、flush,确保所有print的用法都能在pprint中生效 - 用列表推导式统一处理每个输出对象,先转字符串再添加颜色,避免非字符串类型报错
- 直接复用原生
print的分隔、结尾、输出流控制等逻辑,保证行为和原生print完全一致 init(autoreset=True)让每次打印后自动重置颜色,后续普通打印不会继承当前颜色
使用示例:
pprint("Hello", "Python", sep=' | ', end=' ✅\n') # 输出带绿色的内容:Hello | Python ✅
内容的提问来源于stack exchange,提问作者benz
相关产品推荐
相关产品推荐

