Thông thường trong CPython, các tập tin được đóng lại ngay lập tức khi các tính tham khảo giảm xuống zero (mặc dù hành vi này không được bảo đảm cho tương lai phiên bản của CPython)
Trong các triển khai khác, chẳng hạn như Jython, tệp sẽ không bị đóng cho đến khi được thu thập, có thể sau một thời gian dài.
Phong cách kém để có mã hoạt động khác nhau tùy thuộc vào hành vi của triển khai.
Nếu nó chỉ cho một kịch bản quickie hoặc một cái gì đó bạn đang cố gắng trong thông dịch shell nó đủ tốt, nhưng đối với bất kỳ loại công việc sản xuất bạn thường nên sử dụng một người quản lý bối cảnh như trong câu trả lời Falmarri của
Nguồn
2011-01-05 01:49:11
"buf" trong trường hợp này sẽ là một danh sách - không có "đóng" phương pháp trên đó. – jsbueno
'with' có sẵn trong 2.5, nhưng bạn cần phải nhập nó bằng cách sử dụng' from __future__ import with_statement'. Điều này là không cần thiết từ 2,6 trở đi. –
@jsbueno cảm ơn vì đã gặp lỗi của tôi!Tôi đã cập nhật câu trả lời để phản ánh quan sát của bạn! @Jay Conrod, cảm ơn thông tin! (Tôi đã nhảy từ 2,4 đến 2,7, vì vậy tôi chưa bao giờ trải nghiệm điều đó!) – sahhhm