1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python如何执行代码_在Python中重新运行代码块

python如何执行代码_在Python中重新运行代码块

时间:2019-05-15 22:36:59

相关推荐

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, [], {})

]

# and then

for fn, args, kwargs in fns_with_args_and_kwargs:

fn(*args, **kwargs)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。