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

Python 2.7如何获取函数内部定义的未对外返回的变量值

Python 2.7 从函数外部获取func_a内部变量a的实现方案

默认情况下Python函数的局部变量仅在函数执行周期内存在,执行完成后会被回收,外部无法直接访问,可通过以下几种常规方式实现需求:

  • 方案1:修改函数返回值,同时返回原有结果和变量a(最推荐,符合Python编码规范)
def func_a(var_a):
    a = 1
    b = var_a
    return b, a

# 调用时分别接收返回值
return_b, get_a = func_a(5)
print get_a
# 输出结果为1
  • 方案2:将a挂载为函数对象的属性,Python中函数本身也是可自定义属性的对象
def func_a(var_a):
    # 把a赋值为函数的属性
    func_a.a = 1
    b = var_a
    return b

# 必须先调用一次函数完成属性初始化
func_a(5)
print func_a.a
# 输出结果为1

注意:未调用函数直接访问func_a.a会抛出AttributeError异常

  • 方案3:传入可变对象存储内部变量,无需修改函数原有返回结构
def func_a(var_a, store_list):
    a = 1
    # 列表是可变对象,修改会同步到外部的列表对象
    store_list[0] = a
    b = var_a
    return b

# 初始化用于存储的可变列表
store = [None]
func_a(5, store)
print store[0]
# 输出结果为1

不推荐使用inspect模块读取栈帧等非常规黑魔法实现,这类方法兼容性差且不稳定,生产环境易出现不可预知的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:24:06