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