2016-12-22 58 views

回答

11

PyCharm是對的。如果open()失敗,則會引發例外,並且既不是return

with不會以某種方式保護您免受生成上下文管理器的表達式中的異常。 with之後的表達式預計會產生一個上下文管理器,此時將存儲__exit__方法並調用__enter__方法。這裏唯一的結果是上下文管理器被成功生成並輸入,或者引發異常。在這個階段,with在任何時候都不會吞下一個異常,並且默默地跳過該塊。