1
是否有复制下面的代码使用单个with
声明一个不错的方式:如何处理with语句中的动态数量的项目?
thing1 = Thing()
if two_things:
thing2 = Thing()
do_stuff(thing1)
if two_things:
do_stuff(thing2)
thing1.close()
if two_things:
thing2.close()
我可以使用2个独立的与条款,但是这是非常糟糕的,如果大量的代码是在两者之间共享案例。
if two_things:
with Thing() as thing1, Thing() as thing2:
do_stuff(thing1)
do_stuff(thing2)
else:
with Thing() as thing:
do_stuff(thing1)