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)