파이썬에서을 호출하지 않고 파일을 열거 close()
나 파일을 닫지 만 try
- finally
또는 " with
"문을 사용하지 않으면 이것이 문제입니까? 아니면 파이썬 가비지 수집에 의존하여 모든 파일을 닫는 코딩 연습으로 충분합니까? 예를 들어, 이렇게하는 경우 :
for line in open("filename"):
# ... do stuff ...
... 파일을 닫을 수 없으며 예외로 파일을 닫을 수 없기 때문에 이것이 문제입니까? 또는 for
파일이 범위를 벗어 났기 때문에 진술 의 결론에서 분명히 닫히 겠습니까?
for
블록과 함수 / 클래스 / 모듈 의 구분과는 관련이 없습니다 . 객체보다 범위가없고 이름 만있는 것보다 훨씬 간단합니다. 이 개체를 나타내는 이름이 없으므로 범위를 유지하거나 범위를 벗어나는 것은 없습니다.
for
루프 와 관련된 범위가 있다는 가정을 수정 하고 파일이 완전히 다른 이유로 닫혔다는 언급입니다. 그것은으로하지 않는 범위가 무엇인지 가 여기에 해당 아니다으로, 파이썬.
for
. 참조 횟수는 0이되어 자동으로 닫히지 만 함수, 클래스 및 모듈 만 다른 복합 명령문이 아닌 Python에서 범위를 정의합니다.