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

Python中如何直接运行函数打印输出的可执行代码?

实现方法

方案1:捕获标准输出后用exec()执行

不需要修改原有函数定义,是通用性最高的方案:

  • 临时重定向Python的标准输出到内存变量,捕获example()运行时打印的所有内容
  • 将捕获到的字符串传给内置函数exec()直接执行

代码示例:

import io
import sys

def example():
    print("print('Hello')\nprint('There')")

# 捕获标准输出
captured_output = io.StringIO()
old_stdout = sys.stdout
sys.stdout = captured_output

try:
    example()
finally:
    # 恢复原有标准输出,避免影响后续代码运行
    sys.stdout = old_stdout

# 执行捕获到的代码
code_to_run = captured_output.getvalue()
exec(code_to_run)

运行后会直接输出:

Hello
There

方案2:修改函数返回代码字符串(更稳妥的可选方案)

如果你可以调整原有函数的实现,更推荐直接让函数返回要执行的代码,避免捕获输出可能带入的多余空行、无关打印内容等干扰问题:

def example():
    return "print('Hello')\nprint('There')"

exec(example())

注意:exec()会执行传入的任意代码,仅在你完全信任代码来源的场景下使用,不要执行未知来源的字符串,避免出现安全问题。

内容的提问来源于stack exchange,提问作者Kazil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:24:05