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

Python中如何执行由字符串拼接生成的可运行代码?

动态调用对象指定名称方法的实现方案
  • 最优方案:使用Python内置的getattr函数实现,无安全风险,是官方推荐的动态属性/方法获取方式
    实现代码示例:
    # 从pyb对象中获取名称为abc变量值的方法
    target_method = getattr(pyb, abc)
    # 调用方法并传入参数2020
    res = target_method(2020)
    
    如需避免方法不存在抛出的AttributeError,可以添加默认返回值:
    target_method = getattr(pyb, abc, None)
    if target_method:
        res = target_method(2020)
    else:
        # 自定义方法不存在时的处理逻辑
        pass
    
  • 不推荐方案:通过eval执行拼接后的字符串
    虽然代码eval(f"pyb.{abc}(2020)")可以实现需求,但存在极高的安全隐患:如果abc变量的值可控,攻击者可以构造恶意字符串执行任意代码,造成数据泄露、系统损坏等严重后果,生产环境绝对禁止使用该方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:15:01