You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何重写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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 10:21:38