python如何执⾏代码_在Python中重新运⾏代码块
我希望有⼈发布⼀个⽐这个更好的解决⽅案,但我会使⽤这个⽅法,也许还有⼀个装饰师:def retry_if_fails(fn, exception=Exception, *args, **kwargs):
try:
fn(*args, **kwargs)
except exception:
fn(*args, **kwargs) # if this fails again here, the exception bubbles up
当然,问题是您只调⽤retry_if_fails中的⼀个函数,⽽不是像您所做的那样调⽤⼀个两步进的函数。在
您可以创建⼀个函数列表,并将该列表与⽤于参数的单独列表⼀起传递给要处理的每个函数。在
^{pr2}$
在本例中,args的列表和{}的dict列表必须按顺序匹配。all_args或all_kwargs中的空列表或空dict将使您不向特定函数传递任何参数,或仅传递args,或仅传递kwargs,或两者兼⽽有之。在fns = [some_func,
another_func]
all_args = [['a', 'b'], # args for some_func
[] # no args for another_func
]
all_kwargs = [{'param': 'something'}, # kwargs for some_func
{} # no kwargs
]
与funcs、args和{}的列表不同,将它们放在⼀起可能更容易,就像zip-ing的结果⼀样,因为这就是您知道调⽤中的代码的⽅式:
fns_with_args_and_kwargs = [(some_func, ['a', 'b'], {'param': 'something'}),
(another_func, [], {})
]
python新手代码图案如何保存
# and then
for fn, args, kwargs in fns_with_args_and_kwargs:
fn(*args, **kwargs)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。