W Pythonie, jeśli otworzysz plik bez wywołania close()lub zamkniesz plik, ale nie używasz try- finallylub instrukcji " with", czy to jest problem? A może jako praktyka kodowania wystarczy polegać na wyrzucaniu elementów bezużytecznych w Pythonie, aby zamknąć wszystkie pliki? Na przykład, jeśli to zrobi:
for line in open("filename"):
# ... do stuff ...
... czy jest to problem, ponieważ pliku nigdy nie można zamknąć i może wystąpić wyjątek uniemożliwiający jego zamknięcie? A może na pewno zostanie zamknięty po zakończeniu foroświadczenia, ponieważ plik wykracza poza zakres?
forblokami a funkcjami / klasami / modułami. To znacznie prostsze: obiekty nie mają zasięgów, tylko nazwy mają. Nie ma nazwy odnoszącej się do tego obiektu, więc nie ma tu nic, co mogłoby pozostać w zakresie lub wyjść poza zakres.
forpętla jest związana z zakresem i wspomina, że plik zostaje zamknięty z zupełnie innego powodu. Nie chodzi o to, jakie zakresy są w Pythonie, ponieważ nie ma to znaczenia.
forbloku. Jego liczba odwołań spadnie do zera, powodując automatyczne zamknięcie, ale tylko funkcje, klasy i moduły definiują zakresy w Pythonie, a nie inne instrukcje złożone.