如何重写Python内置方法print()以实现自定义功能?
可以重写Python内置的print()方法吗?
当然可以重写Python内置的print()方法,你可以通过多种方式实现自定义逻辑,让它在打印指定内容的同时执行额外操作。下面是两种常用的实现方式:
1. 直接覆盖内置print函数
先保存原print方法的引用,再定义新的print函数,在其中调用原方法并添加自定义操作:
# 保存原print方法,避免丢失原有功能 original_print = print def print(*args, **kwargs): # 执行自定义额外操作,比如记录日志 original_print("【额外操作】正在记录打印内容") # 调用原print方法完成打印 original_print(*args, **kwargs) # 测试自定义后的print print("Hello, Custom Print!")
2. 使用装饰器包装原print
装饰器方式更灵活,适合临时修改或复用自定义逻辑:
def custom_print_wrapper(func): def wrapper(*args, **kwargs): # 打印前执行额外操作,比如添加时间戳 from datetime import datetime func(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] 打印开始") # 调用原print方法打印目标内容 result = func(*args, **kwargs) # 打印后执行额外操作 func("【额外操作】打印完成") return result return wrapper # 导入builtins模块,修改全局的print import builtins builtins.print = custom_print_wrapper(builtins.print) # 测试效果 print("这是一条测试打印内容")
注意事项
- 重写前务必保存原
print的引用,否则会完全丢失内置print的原生功能。 - 修改
builtins.print会影响全局范围内的print调用;如果只想在当前模块生效,直接覆盖模块内的print即可。 - 确保传递
*args和**kwargs,保证原print的所有参数(如end、sep、file等)能正常工作。
内容的提问来源于stack exchange,提问作者Omar Yacop
相关产品推荐
相关产品推荐

