tôi rằng with
tuyên bố giúp đỡ bạn để tắt chức năng này:Cách "with" tốt hơn try/catch để mở một tệp bằng Python?
try:
f = open(my_file)
do_stuff_that_fails()
except:
pass
finally:
f.close()
Into:
with open(my_file) as f:
do_stuff_that_fails()
Nhưng làm thế nào là tốt hơn? Bạn vẫn phải xử lý trường hợp với tệp không thể mở được (như nhắc người dùng nói với anh ấy rằng anh ấy không có quyền), vì vậy trong thực tế bạn sẽ có:
try:
with open(my_file) as f:
do_stuff_that_fails()
except (IOError, OSError, Failure) as e:
do_stuff_when_it_doesnt_work()
Tương đương đến:
try:
f = open(my_file)
do_stuff_that_fails()
except (IOError, OSError, Faillure) as e:
do_stuff_when_it_doesnt_work()
finally:
f.close()
Có, bạn đã đạt được hai dòng, nhưng bạn đã thêm mức làm tổ không dễ đọc hơn. Mục đích của câu lệnh with
có giúp bạn tiết kiệm hai dòng hoặc tôi thiếu gì đó không?
Có vẻ như rất nhiều để thêm từ khóa chỉ cho điều đó, vì vậy tôi cảm thấy có một số cú pháp để xử lý thử bổ sung/ngoại trừ việc tôi không biết.
"có" sẽ là tên thẻ * khủng khiếp, tùy thuộc vào tình trạng lạm dụng người mới tham gia. Chúng ta có thể tìm thấy cái gì tốt hơn không? – Charles
+1 Điều gì về với từ khóa? –
Python cần một: trywith mở ('bất cứ điều gì', 'r') như f: .... trừ (blah): .... – Will