2016-01-12 3 views
0

Какая разница в использовании:Операция With-as против "=" Назначение?

iFile = open("filename.txt",'r') 

против

with open("filename.txt",'r') as iFile: 

Есть еще один эффективный или позволить более иметь больше способов доступа? Мне кажется, что оператор with-as является временным и unreferences после завершения следующего блока.

ответ

4

Ваш первый пример просто открывает файл и назначает объект файла переменной. Вам нужно будет управлять закрытием файла самостоятельно (в идеале, в блоке try-finally, чтобы вы не просачивали файл)

Второй фрагмент использует диспетчер контекста для автоматического закрытия файла по мере выхода из блока с блоком, в том числе путем возврата или возбуждения исключения

+2

Файл не «течет», как на C, но это может занять некоторое время, прежде чем собирать мусор. – kay

Смежные вопросы