Python 3.9¶
Python 3.9.0 (kararlı sürüm), 5 Ekim 2020’de yayınlandı. 3.9 için özellikler PEP 596 içinde tanımlanmıştır ve değişikliklerin ayrıntılı bir açıklamasına Python 3.9’da Yenilikler içinden ulaşılabilir
Özellikler |
Durum |
|
C uzantı türlerinin metotlarından modül durumuna hızlı erişim |
İlgili değil |
|
dict’e birleşim operatörleri eklendi |
Tamamlandı [1] |
|
Standart koleksiyonlarda tür ipucu verilen genel türler |
||
Esnek fonksiyon ve değişken açıklamaları |
||
CPython yıllık bir yayın döngüsü benimser. Yıllık yerine, iki aylık bir yayın döngüsü hedeflenmektedir |
İlgili değil |
|
Dekoratörlerdeki dil bilgisi kısıtlamaları gevşetildi |
||
IANA Saat Dilimi Veritabanı artık zoneinfo modülünde standart kütüphanede mevcuttur |
||
Önekleri ve sonekleri kaldırmaya yönelik dizgi metotları |
||
CPython artık PEG tabanlı yeni bir ayrıştırıcı kullanır |
İlgili değil |
Diğer Dil Değişiklikleri:
__import__() artık ValueError yerine ImportError fırlatır |
Tamamlandı |
Python artık komut satırında belirtilen betik dosyası adının mutlak yolunu alır (ör: python3 script.py): __main__ modülünün __file__ niteliği, göreli bir yol yerine mutlak bir yol haline geldi |
|
Varsayılan olarak, en iyi performans için, errors argümanı yalnızca ilk kodlama/kod çözme hatasında denetlenir ve encoding argümanı bazen boş dizgiler için yok sayılır |
|
“”.replace(“”, s, n) artık sıfır olmayan tüm n değerleri için boş bir dizgi yerine s döndürür. Bu, artık “”.replace(“”, s) ile tutarlıdır |
|
Artık herhangi bir geçerli ifade bir dekoratör olarak kullanılabilir. Önceden, dil bilgisi çok daha kısıtlayıcıydı |
|
aclose() / asend() / athrow() fonksiyonlarının paralel çalıştırılması artık yasaktır ve ag_running artık eşzamansız üretecin gerçek çalışma durumunu yansıtır |
|
__iter__ metodunun çağrılmasındaki beklenmeyen hatalar, artık in operatöründe ve operator modülünün contains(), indexOf() ve countOf() fonksiyonlarında TypeError tarafından maskelenmez |
|
Parantezsiz lambda ifadeleri, artık kavramalardaki ve üreteç ifadelerindeki bir if yan tümcesinin ifade kısmı olamaz |
Yerleşik modüllerdeki değişiklikler:
Önemli güvenlik endişeleri nedeniyle, asyncio.loop.create_datagram_endpoint() fonksiyonunun reuse_address parametresi artık desteklenmemektedir |
|
Varsayılan yürütücünün kapanmayı tamamlamasını beklerken ThreadPoolExecutor üzerinde bekleyen, varsayılan yürütücü için bir kapanma zamanlayan yeni bir shutdown_default_executor() eşyordamı eklendi. Ayrıca, asyncio.run(), yeni eşyordamı kullanacak şekilde güncellendi. |
|
Süreç dosya tanımlayıcılarını yoklayan, Linux’a özgü bir alt süreç gözlemci uygulaması olan asyncio.PidfdChildWatcher eklendi |
|
yeni bir coroutine asyncio.to_thread() eklendi |
|
Bir zaman aşımı nedeniyle görevi iptal ederken, asyncio.wait_for() artık, pozitif zaman aşımlarında yaptığı gibi, zaman aşımının <= 0 olduğu durumda da iptal tamamlanana kadar bekleyecektir |
|
asyncio artık bir ssl.SSLSocket yuvasıyla uyumsuz metotları çağırırken TyperError fırlatır |
|
Çöp toplama, yeniden canlandırılan nesnelerde bloklanmaz |
|
Bir nesnenin çöp toplayıcı tarafından sonlandırılıp sonlandırılmadığını denetlemek için yeni bir gc.is_finalized() fonksiyonu eklendi |
|
math.gcd() fonksiyonu birden çok argümanı işleyecek şekilde genişletildi. Önceden, yalnızca iki argümanı destekliyordu |
|
math.lcm() eklendi: belirtilen argümanların en küçük ortak katını döndürür |
|
math.nextafter() eklendi: x’ten y’ye doğru sonraki kayan noktalı değeri döndürür |
|
math.ulp() eklendi: bir kayan noktalı sayının en az anlamlı bitinin değerini döndürür |
|
Linux’a özgü os.pidfd_open() ve os.P_PIDFD sunuldu |
|
os.unsetenv() fonksiyonu artık Windows’ta da kullanılabilir |
Tamamlandı |
os.putenv() ve os.unsetenv() fonksiyonları artık her zaman kullanılabilir |
Tamamlandı |
os.waitstatus_to_exitcode() fonksiyonu eklendi: bir bekleme durumunu bir çıkış koduna dönüştürür |
|
Yeni bir random.Random.randbytes metodu eklendi: rastgele baytlar üretir |
|
Yeni bir sys.platlibdir niteliği eklendi: platforma özgü kütüphane dizininin adı |
|
Önceden, sys.stderr etkileşimli olmadığında blok arabellekliydi. Artık stderr varsayılan olarak her zaman satır arabellekli olur |
|
Notlar