Mart ayında 3.9 sürümü yayınlanan Python programlama dilinin, bugün itibariyle 3.9.0b4 sürümü yayınlandı. Yakın zamanda tam sürümün yayınlanılması planlanmaktadır. Peki, bu sürümün diğer sürümlerden farkı nedir? Ne tür değişiklikler söz konusu? Yeni özelliklerden bazıları inanılmaz derecede heyecan verici ve sürüm yayınlandıktan sonra kullanıldıklarını görmek oldukça şaşırtıcı olacak. Python 3.9 sürümünün yeni özellikleri 4 başlık altında toplanılabilir:
Şimdi bu yeni değişikliklerin nasıl kullanıldıklarına bakalım. Sözlük Birleştirme İşlemleri Şık söz dizimi ile en sevilen özelliklerden biri olmuştur. A ve B olarak birleştirmeniz gereken iki sözlük var ise, bu sözlükleri birleştirmek için “birleşme” işaretini kullanıyoruz. Birleşme işareti, ” | ” dir.
Ve sözlüğü güncelleyen güncelleme operatörü, ” |= “
Eğer sözlüklerin ikisinde ortak bir anahtar varsa, ikinci sözlükte anahtar kullanılır:
“|=” operatörünün başka bir güzel özelliği de bir liste veya jeneratör gibi nesneler kullanarak sözlüğü yeni key (anahtar)/ value (değer) çiftleriyle güncelleyebilmesidir:
Aynı işlemi standart “|” işareti ile denersek, TypeError hatası alırız, çünkü “|” operatörü sadece sözlükler arasında işlem yapmamıza izin verir. Değişken Türü İpucu Python dinamik olarak yazılmıştır, yani kodumuzda veri türlerini belirtmemize gerek yoktur. Bu çoğu zaman iyi ama bazen kafa karıştırıcı olabiliyor, Python’un bu kadar esnek olması bazı sıkıntılara sebep olabilmektedir. 3.5 sürümünden sonra bu veri türlerini belirleyebildik, ama oldukça hantaldı. Bu güncelleme ile bu gerçekten değişti, bir örnek kullanalım: add_int fonksiyonumuzda, bir sayıyı kendisiyle toplamak istiyoruz. Ama editör bunu bilmiyor ve “+” işaretini kullanarak iki dizeyi birbirine herhangi bir uyarı vermeden ekleyebiliyor. Ancak, biz fonksiyonu tanımlarken değişkeni tipini int olarak belirtirsek, fonksiyona parametre olarak string değer verdiğimizde bize uyarı verecektir. Çünkü fonksiyonun bizden beklediği parametre olarak int değer girilmesidir. Editör bu durumu kolayca fark edebiliyor. Bir başka örnek verecek olursak, sum_dict fonksiyonumuz, parametre olarak bir sözlük almaktadır. Fakat spesifik olarak belirtilen bir şey vardır, o da sözlüğün anahtarlarının bir String, değerlerinin ise bir int olmasıdır. Bu fonksiyonu test etmek istediğimizde, ilk test değişkeninde herhangi bir sıkıntı yoktur. Çünkü fonksiyonun gereksinimlerini karşılamaktadır. Ancak test2 sözlüğüne baktığımız zaman anahtar ve değerlerinin int olduğunu görebiliyoruz. Editör bu durumda bize bir uyarı vermektedir. Görüldüğü üzere, değişken türü ipucu özelliği her yerde kullanılabilir ve yeni söz dizimi sayesinde, artık daha anlaşılır gözükmektedir. String Yöntemleri Diğer özellikler gibi görkemli olmasa da, yine de bahsedilmeye değer. Ön ekleri ve son ekleri kaldırmak için iki yeni dize yöntemi eklendi:
Yeni Ayrıştırıcı Bu, gözden uzak bir değişikliktir, ancak Python programlama dilinin gelecekteki evrimi için en önemli değişiklerden biri olma potansiyeline sahiptir. Python şu anda ağırlıklı olarak LL(1) tabanlı bir dil bilgisi kullanıyor. Kullanılan bu yöntemin kullanımı nedeniyle Python’da bazı sorunlara yol açıyor.
LL(1) ayrıştırıcı da sol öz yineleme ile bozuluyor. Belirli öz yinelemeli söz dizimi, ayrıştırma ağacında sonsuz bir döngüye neden olabilir. Python’un yaratıcısı Guido van Rossum bunu burada açıklıyor. PEG tabanlı yeni ayrıştırıcı, Python geliştiricilerine önemli ölçüde daha fazla esneklik sağlayacak – Python 3.10’dan itibaren fark etmeye başlayacağımız bir şey. Python 3.9 sürümünün yeni özellikleri özellikleri bu şekildedir. Gelişmeleri yakından takip etmek isterseniz, Python dilinin resmi dokümantasyonunu inceleyebilirsiniz. [Alinti] - Kaynak: Python 3.9 Sürümünün Yeni Özellikleri | Teknoloji.org |
Bildirim