Якщо в Python ви відкриваєте файл без виклику close()
, або закриваєте файл, але не використовуєте try
- finally
або " with
", це проблема? Або як практика кодування достатньо покластися на збирання сміття Python для закриття всіх файлів? Наприклад, якщо хтось робить це:
for line in open("filename"):
# ... do stuff ...
... це проблема, тому що файл ніколи не можна закрити, і може статися виняток, який заважає закрити його? Або він обов'язково буде закритий після завершення for
заяви, оскільки файл виходить за межі області?
for
блоками та функціями / класами / модулями. Це набагато простіше, ніж це: об’єкти не мають масштабів, а лише імена. Немає імені, яке б посилалося на цей об’єкт, тому тут немає нічого, щоб не залишатися в межах сфери дії та не виходити за межі її дії.
for
циклом, і згадується, що файл закривається з зовсім іншої причини. Він не потрапляє у сфери застосування Python, оскільки це не доречно.
for
блоку. Його посилання буде нульовим, що призведе до автоматичного закриття, але лише функції, класи та модулі визначають області застосування в Python, а не інші складні оператори.