Apakah ini cara yang benar untuk menggunakan pernyataan python "dengan" dalam kombinasi dengan blok coba-kecuali ?:
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
Jika ya, pertimbangkan cara lama dalam melakukan sesuatu:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
Apakah manfaat utama dari pernyataan "dengan" di sini adalah kita dapat menghilangkan tiga baris kode? Tampaknya tidak terlalu memaksa bagi saya untuk kasus penggunaan ini (meskipun saya memahami bahwa pernyataan "dengan" memiliki kegunaan lain).
EDIT: Apakah fungsi dari dua blok kode di atas identik?
EDIT2: Beberapa jawaban pertama berbicara secara umum tentang manfaat menggunakan "dengan", tetapi tampaknya manfaat marjinal di sini. Kita semua telah (atau seharusnya) secara eksplisit memanggil f.close () selama bertahun-tahun. Saya kira satu keuntungan adalah bahwa pembuat kode ceroboh akan mendapatkan keuntungan dari penggunaan "dengan".