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