นี่เป็นวิธีที่ถูกต้องในการใช้คำสั่ง python "with" ร่วมกับ try-except block หรือไม่:
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
หากเป็นเช่นนั้นให้พิจารณาวิธีการทำสิ่งต่างๆแบบเก่า:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
ประโยชน์หลักของคำสั่ง "ด้วย" ตรงนี้คือเราสามารถกำจัดโค้ดสามบรรทัดได้หรือไม่? ดูเหมือนว่าจะไม่น่าสนใจสำหรับฉันสำหรับกรณีการใช้งานนี้ (แม้ว่าฉันจะเข้าใจว่าคำสั่ง "ด้วย" มีประโยชน์อื่น ๆ )
แก้ไข: การทำงานของโค้ดสองบล็อกข้างต้นเหมือนกันหรือไม่
แก้ไข 2: คำตอบสองสามข้อแรกมักพูดถึงประโยชน์ของการใช้ "กับ" แต่ดูเหมือนว่าจะมีประโยชน์เพียงเล็กน้อยที่นี่ เราทุกคน (หรือควรจะ) เรียกอย่างชัดเจนว่า f.close () มาหลายปีแล้ว ฉันคิดว่าประโยชน์อย่างหนึ่งก็คือผู้เขียนโค้ดที่เลอะเทอะจะได้รับประโยชน์จากการใช้ "with"