我有一个函数负责从kwargs其他几个函数中获取数据。
keep其他函数将它们自己的 kwargs 以及一个决定是否将这些属性保留在 kwargs 中的参数一起传递给该函数- 即是否使用get或pop。
def _handle_kwargs(keep, **kwargs):
# keep: whether to keep the kwarg when we're done with it (i.e. get or pop)
if keep: func = getattr(kwargs, 'get')
else: func = getattr(kwargs, 'pop')
# get or pop some kwargs individually
debug = func('debug', False)
assert isinstance(debug, bool)
...
# repeated for several different possible kwargs
return debug, some_other_kwarg, ...
def normal_function(**kwargs)
debug, some_other_kwarg = _handle_kwargs(False, **kwargs)
从 kwargs 获取值可以正常工作。但是,如果我尝试pop使用 kwargs,那么它们仍然存在于原始函数的kwargs. 我怀疑这是因为_handle_kwargs只是在修改自己的 kwargs。
如果我使用 ,如何确保删除 kwargs pop,即使它来自另一个函数?
MMTTMM
慕妹3242003
相关分类