Python "with" ifadesini bir try-exclude bloğu ile birlikte kullanmanın doğru yolu bu mu ?:
try:
with open("file", "r") as f:
line = f.readline()
except IOError:
<whatever>
Eğer öyleyse, bir şeyleri yapmanın eski yöntemini düşünün:
try:
f = open("file", "r")
line = f.readline()
except IOError:
<whatever>
finally:
f.close()
Buradaki "ile" ifadesinin birincil faydası, üç satır koddan kurtulabilmemiz mi? Bu kullanım durumu için bana o kadar zorlayıcı görünmüyor ("with" ifadesinin başka kullanımları olduğunu anladığım halde).
DÜZENLEME: Yukarıdaki iki kod bloğunun işlevselliği aynı mı?
DÜZENLEME2: İlk birkaç cevap genellikle "with" kullanmanın faydalarından bahsediyor, ancak bunlar burada marjinal fayda sağlıyor gibi görünüyor. Yıllardır hepimiz açıkça f.close () çağrısı yapıyoruz (veya olmalıydık). Sanırım bir yararı, özensiz kodlayıcıların "with" kullanmanın faydasını görecek olmasıdır.