SORU
27 Mart 2012, Salı


Eğer içinde geri dönersem bir blok ile dosyayı kapatmak için garanti edilir?

Aşağıdaki kodu alın

with open(path, mode) as f:
    return [line for line in f if condition]

Dosyayı düzgün bir şekilde kapatılacak veya iade bir şekilde içerik yöneticisi bypass mı geliyor?

(Python 2.7)

CEVAP
27 Mart 2012, Salı


Evet, try bir blok sonra finally blok gibi hareket eder, yani her zaman yürütür python işleme tabii alışılmadık bir şekilde sona erer sürece).

Ayrıca with deyimi: şartname PEP-343 örneklerinden biri olarak söz edilmektedir

with locked(myLock):
    # Code here executes with myLock held.  The lock is
    # guaranteed to be released when the block is left (even
    # if via return or by an uncaught exception).

Kayda değer bir şey olduğunu ancak, kolayca yakalamak istisnalar tarafından atılan open() ara vermeden bütün with blok içinde try..except blok hangi genellikle ne istiyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AceHoodVEVO

    AceHoodVEVO

    12 Mayıs 2009
  • Carlos Delgado

    Carlos Delga

    21 HAZİRAN 2011
  • CasinoRoyaleMovie's channel

    CasinoRoyale

    1 AĞUSTOS 2006