Şimdi Ara

Python 3.9 Sürümünün Yeni Özellikleri

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
335
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
2 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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:

    • Sözlük Birleştirme İşlemleri
    • Değişken Türü İpucu
    • İki Yeni String Yöntemi
    • Yeni Python Ayrıştırıcısı

    Ş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.


    Kod

    Yığını:
    a = {1: 'a', 2: 'b', 3: 'c'} b = {4: 'd', 5: 'e'} c = a | b print(c) #Beklenen çıktı: [Out] : {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}


    Ve sözlüğü güncelleyen güncelleme operatörü, ” |= “


    Kod

    Yığını:
    a = {1: 'a', 2: 'b', 3: 'c'} b = {4: 'd', 5: 'e'} a |= b print(a) #Beklenen Çıktı: [Out]: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}



    Eğer sözlüklerin ikisinde ortak bir anahtar varsa, ikinci sözlükte anahtar kullanılır:


    Kod

    Yığını:
    a = {1: 'a', 2: 'b', 3: 'c', 6: 'ortak'} b = {4: 'd', 5: 'e', 6: 'ama farklı'} print(a | b) #Beklenen Çıktı: [Out]: {1: 'a', 2: 'b', 3: 'c', 6: 'ama farklı', 4: 'd', 5: 'e'}



    “|=” 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:


    Kod

    Yığını:
    a = {'a': 'one', 'b': 'two'} b = ((i, i**2) for i in range(3)) a |= b print(a) #Beklenen Çıktı: [Out]: {'a': 'one', 'b': 'two', 0: 0, 1: 1, 2: 4}


    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.


    Python 3.9 Sürümünün Yeni Özellikleri

    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:


    Python 3.9 Sürümünün Yeni Özellikleri


    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,



    Python 3.9 Sürümünün Yeni Özellikleri


    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:


    Kod

    Yığını:
    "Merhaba dünya".removeprefix("Me") #Beklenen çıktı: [Out]: "rhaba dünya" "Merhaba dünya".removesuffix("ya") #Beklenen çıktı: [Out]: "merhaba dün"


    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.


    • Python LL olmayan(1) dil bilgisi içerir; Bu nedenle, geçerli dil bilgisinin bazı bölümleri geçici çözümler kullanılır ve gereksiz karmaşıklık oluşturur.


    • LL(1) Python söz diziminde sınırlamalar yaratır. Bu sorun, aşağıdaki kodun yalnızca geçerli ayrıştırıcı (SyntaxError( kullanılarak uygulanamayacağını vurgular:

    Kod

    Yığını:
    with (open("a_really_long_foo") as foo, open("a_really_long_bar") as bar): pass


    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








  • java adamdır
  • gatsbythegreat kullanıcısına yanıt
    hahaha bunu diyen android geliştiriyordur ve hayatında python kullanmamıştır
  • sözlük birleştirme işareti zaten yok muydu ben mi yanlış biliyorum
  • Kurtçu Restrop kullanıcısına yanıt
    | şeklinde yoktu.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.