Python 3.12 performansa, daha net sözdizimine ve daha kesin hata mesajlarına odaklanır

Saberie

Active member


  1. Python 3.12 performansa, daha net sözdizimine ve daha kesin hata mesajlarına odaklanır

Python Software Foundation, Python 3.12’nin ilk beta sürümünü yayınladı. Yeni sürümde, programlama dili, genel sınıflar, işlevler ve tür takma adlarının yanı sıra F dizeleri gibi bazı sözdizimsel eklemelerle birlikte gelir.Ayrıca, daha iyi performans ve hata mesajlarında iyileştirmelere yönelik ayarlamalar vardır.


İlk beta ile Python 3.12, özelliklerin tamamlandığı kabul edilir, bu nedenle başka yeni özellik planlanmaz. Python 3.12 için yayın yol haritası, son sürümün 2 Ekim’de yapılması planlanmadan önce üç beta daha ve iki sürüm adayı içeriyor.


Söz dizimini temizle


Python, sürüm 3.6’dan beri biçimlendirilmiş dize sabit değerlerini veya F dizelerini bilir. Örneğin, ifadeleri dizelere kolayca gömmenize ve ardından doğrudan değişkenleri dahil etmenize olanak tanırlar. Bununla birlikte, orijinal Python Geliştirme Önerisi PEP 498, resmi sözdizimi belirtimlerinden vazgeçmiştir ve bazı sınırlamaları vardır. Örneğin, tek tırnak içine alınmış bir dize (') sınırlı, değil (') ifadelerde izin verilir. Python 3.12’de bulunan PEP 701, artık F-dizeleri için sözdizimini resmileştiriyor ve böylece olası kullanımları genişletiyor.

Python 3.12 ayrıca diğer programlama dillerini temel alan genel tür takma adları, işlevleri ve sınıfları için yeni ve daha net bir sözdizimi sunar. İlişkili PEP 695, genel sınıflar için eski ve yeni gösterimi karşılaştırır:


# bisherige Schreibweise
from typing import Generic, TypeVar

_T_co = TypeVar("_T_co", covariant=True, bound=str)

class ClassA(Generic[_T_co]):
def method1(self) -> _T_co:
...

# ab Python 3.12
class ClassA[T: str]:
def method1(self) -> T:
...


performans ve hata mesajları



Performansı artırmayı amaçlayan eklemeler arasında, anlamaları, yani listelerin, sözlüklerin ve kümelerin filtrelenmiş kopyalarını dahili olarak uygulayan PEP 709 vardır. Şimdiye kadar Python bunun için iç içe geçmiş işlevler kullanmıştı. 3.12 sürümünden beri, bunun yerine satır içi kullanır. Tek kavrayışlar ideal olarak iki kat daha hızlı performans göstermelidir ve teklif, birçok kavrayışa sahip gerçek bir uygulamanın performansında %11’lik bir iyileşmeden söz etmektedir.

Anlamlı hata mesajları zaten 3.11 sürümünde odak noktasıydı. O sırada PEP 657, Python yorumlayıcısının geri izlemelerde bir hatanın oluştuğu yerde tam ifadeyi göstermesini sağladı. Daha önce, ilgili satır numarasını tükürmekle yetiniyordu. Python 3.12’de, hata mesajları, diğer şeylerin yanı sıra, bir hatanın nedeni olarak olası eksik modül içe aktarma deyimlerini gösterir. NameError İLE:


sys.version_info
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sys' is not defined. Did you forget to import 'sys'?


Ayrıca, eğer koddaysa muhtemelen değiştirilen atamaların göstergeleri vardır. import foo from bar yerine from bar import foo durmak.

Daha az GIL kısıtlaması


Python topluluğu uzun süredir tek bir yenilikle ilgileniyor: Global Interpreter Lock (GIL) tuzağından bir çıkış yolu. Eşzamanlı programları kısıtlayın çünkü tüm Python yorumlayıcıları aynı genel kilide tabidir. PEP 684, bağımsız kilitlere sahip alt tercümanlar oluşturmanıza olanak tanır.

İlgili ve beş yıldan eski PEP 554, standart kitaplıktaki birden çok tercüman için bir interpretersÖte yandan modül, yalnızca gelecek 3.13 sürümünde lansman için işaretlendi.

Python 3.12’deki diğer önemli yeni özellikler arasında Linux Profiler bulunmaktadır. perf son zamanlarda izlemelerde Python işlev adlarını çıktı. Ek olarak, kullanımdan kaldırıldı olarak işaretlenen birçok özellik artık mevcut sürümde mevcut değildir.

Daha fazla ayrıntı ilk beta blog gönderisinde bulunabilir. Değişikliklerin tam listesi değişiklik günlüğünde bulunabilir.


(rm)



Haberin Sonu
 
Üst