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

Python:如何在bar方法中获取foo方法的config参数值?

解决方法

你的代码里,bar拿到的只是foo函数本身,并没有获取到foo调用时传入的config参数,所以需要通过以下方式传递这个参数:

方法一:直接传递config参数

这是最直接的方案,修改foo调用bar时把config一起传进去:

def bar(foo, config):
    # 直接获取is_prod的值
    print(config['is_prod'])

def foo(config: dict):
    bar(foo, config)
    
foo({'is_prod': True})

方法二:将config绑定为foo函数的属性

如果必须只传递foo函数给bar,可以在foo内部把config绑定为函数自身的属性,之后在bar里读取这个属性:

def bar(foo):
    # 通过函数属性获取is_prod的值
    print(foo.config['is_prod'])

def foo(config: dict):
    foo.config = config  # 把config绑定为foo函数的属性
    bar(foo)
    
foo({'is_prod': True})

注意事项

  • 原代码中foo调用bar(foo)时,传递的是foo这个函数对象,而非foo的执行结果或它的参数,所以bar无法直接获取到config。
  • 方法二中的函数属性是全局绑定的,如果多次调用foo,后续的config会覆盖之前的,若有并发场景需要注意。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:36:34