我在Python中有一个调用子函数的父函数。我希望能够在父函数中定义一个可以从子函数访问的变量,,而不必将其作为参数传递
这是因为子函数签名必须保持稳定,才能保持与大量代码的兼容性。此外,我的实际用例涉及到可能有数百个函数调用的大型调用堆栈,在每个函数调用中传递这个参数似乎很痛苦
我想做的是这样的:
def parent():
context = [1]
child(a, b, c)
def child(a, b, c):
# Somehow access the context here, without it being an explicit argument
context = get_context()
context.append[5]
我在这里试图重新创建的内容与React Contexts类似,但是是Python。具体来说,它们的用例与我所追求的相同:
Context provides a way to pass data through the component tree without having to pass props down manually at every level.
我曾考虑过使用上下文管理器(with x
),但这实际上并没有提供子对象访问上下文的机制。我也不能在这里使用全局变量或类变量,因为我需要支持多个相互独立的调用堆栈
在Python中,这在某种程度上是可能的吗
类似乎非常适合提供函数“上下文”:
我建议在子函数中添加一个默认变量,并检查该变量的值是否为
None
例如:
使用默认变量作为最后一个参数将保留与所有以前实现的兼容性
要将5附加到上下文并为a、b和c赋值,请执行以下操作:
相关问题 更多 >
编程相关推荐