Python 3.12'nin yeni kararlı sürümü geldi ve bunlar onun yeni özellikleri

Python logosu

Python, üst düzey bir programlama dilidir.

Bir yıllık geliştirmeden sonra, Stabil sürümün yayınlanacağı duyuruldu ve ayrıca programlama dilinin alfa testi aşamasının başlangıcı Python 3.12 ve Python 3.13 (sırasıyla). Python 3.12'nin bu yeni dalının bir buçuk yıl boyunca destekleneceği, ardından üç buçuk yıl daha güvenlik açıklarını ortadan kaldıracak düzeltmeler üretileceği belirtiliyor.

Python 3.12'nin sunulan yeni sürümü, aşağıdaki iyileştirmelerle birlikte geliyor: f-string analizinin esnekliği. Şimdi bu gelişmeyle birçok kısıtlama bir kenara bırakılabilir, çünkü örneğin artık Python'da çok satırlı ifadeler, yorumlar, ters eğik çizgiler ve Unicode kaçış dizileri dahil olmak üzere herhangi bir geçerli ifadeyi içerebilirsiniz. Ek olarak, dahili dizeler artık aynı tırnak işaretlerinin yeniden kullanılmasına izin veriyor; yani çift tırnak işaretleri artık içeride yeniden kullanılabilir tek tırnaklara geçmek zorunda kalmadan.

Örneğin :

f"""{f'''{f'{f"{1+1}"}'}'''}"""

Artık keyfi olarak iç içe yerleştirmek mümkün:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Öne çıkan değişikliklerden bir diğeri de yalıtılmış alt yorumlayıcılar ve ayrı global kilitler için destekCPython, bir süreç içindeki farklı tercümanlar için birden fazla tercümanın bir süreçte aynı anda çalışmasına izin verdiğinden, çok çekirdekli sistemlerde kaynak kullanımının verimliliğini artırmayı amaçlamaktadır. Bu özellik şu anda yalnızca C-API aracılığıyla kullanılabilmektedir (Python API desteği bir sonraki ana dalda görünecektir).

Buna ek olarak şunun da altı çiziliyor.Hata mesajlarının bilgilendirici içeriği artırıldı ve istisnalar yelpazesi genişletilerek yazım hatalarını ortadan kaldıracak öneriler sunuldu. Örneğin, unutulmuş standart kitaplık modüllerinin içe aktarılmasına yönelik öneriler ve "self" önekinin eklenmesine yönelik öneriler artık görüntüleniyor.

Python koduna tampon protokolünü kullanma yeteneği eklendi. "__buffer__()" yöntemini sağlayan sınıflar artık doğrudan bellekteki ikili veriler üzerinde çalışan türler olarak kullanılabilir.

Modül Hata ayıklama ve profil oluşturma için sys.monitoring önerilmiştir, CPython'daki çağrılar, işlev dönüşleri, rastgele kod satırlarının yürütülmesi, istisnalar ve geçişler gibi olayları minimum ek yük ile izlemenize olanak tanır.

Yorumlayıcı, Linux çekirdek performans alt sistemi için destek uygularperformans yardımcı programını kullanarak profil oluştururken Python işlev adlarının belirlenmesine olanak tanır (daha önce, izlemelerde yalnızca C işlev adları belirleniyordu).

Performans iyileştirmeleriyle ilgili olarak şunlar belirtiliyor: optimizasyonlara devam edildi, hangisiyle Toplamda %5 olarak tahmin edilen bir performans artışı elde edildi., o da eklendi BOLT ikili optimizer için deneysel destek derleme sürecinde performansı %1-5 artırırken, asyncio paketinin performansı da önemli ölçüde arttı (bazı testler %75'lik bir hızlanma gösteriyor).

Liste kavramalarıyla çalışmayı iki kata kadar hızlandıran liste kavramalarının satır içi genişletilmesi uygulandı (liste kavramalarını aktif olarak kullanan kod için testler %11'lik genel performans artışı gösterdi).

Güvenliği artırmak için, entegre uygulamaları Hashlib'deki SHA1, SHA3, SHA2-384, SHA2-512 ve MD5 algoritmaları değiştirildi HACL* projesinden resmi olarak doğrulanmış seçeneklerle (yerleşik uygulamalar yalnızca OpenSSL mevcut olmadığında kullanılır).

Of the diğer değişiklikler göze çarpan:

  • Modül Windows desteğini genişletti.
  • Python yığın taşması korumasını uygular.
    asyncio.Task sınıfının oluşturulması hızlandırıldı.
  • Unicode nesnelerinin boyutu 8 ila 16 bayta düşürüldü.
  • re.sub(), re.subn() ve re.Pattern normal ifadeleriyle yapılan işlemler hızlandırıldı.
  • Bazı protokoller için isinstance() denetimlerinin çalıştırılması 2 ila 20 kat hızlandırıldı.
  • tokenize.tokenize() ve tokenize.generate_tokens() işlevleri önemli ölçüde (bazı testlerde %64'e kadar) hızlandırıldı.
  • Öznitelik yükleme ve super() yönteminin çağrılması hızlandırıldı.
  • Genel sınıflar ve işlevler için yeni, daha kompakt bir tür açıklama sözdizimi önerildi.
  • Web tarayıcı modülü artık Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird ve Firefox dahil olmak üzere sürüm 36'ya kadar olan eski tarayıcıları desteklememektedir.
  • Gelecekteki optimizasyonlara hazırlık amacıyla tam sayıların dahili temsili değiştirildi.

Son olarak, belirtildiği gibi, Python 3.13'ün alfa testi başladı ve burada bir derleme modu ortaya çıktı Küresel tercüman kilidi olmayan CPython (GIL, Küresel Tercüman Kilidi).

Şube Python 3.13 yedi ay boyunca alfa aşamasında olacak, Yeni geliştirme planına göre yeni özelliklerin ekleneceği ve hataların düzeltileceği bu süreçte, yeni bir dal üzerindeki çalışmalar, önceki dalın yayınlanmasından beş ay önce başlar ve bir sonraki sürüm alfa test aşamasına ulaştığında başlar.

Bundan sonra beta sürümleri üç ay boyunca test edilecek, bu süre zarfında yeni özellik eklenmesi yasaklanacak ve tüm dikkat hataların düzeltilmesine gösterilecek. Çıkıştan önceki son iki ay boyunca şube, nihai stabilizasyonun gerçekleşeceği sürüm adayı aşamasında olacak.

Sonunda evet onun hakkında daha fazla bilgi edinmekle ilgileniyorsunuzayrıntılarını kontrol edebilirsiniz. aşağıdaki bağlantı.