Anasayfa / Python / Python 3.6’da Gelen Yenilikler ve Gelişmeler

Python 3.6’da Gelen Yenilikler ve Gelişmeler

İlgilenenlerin bildiği üzere 23.12.2016 tarihinden bu yana Python 3.6.0 sürümüyle hizmetimizde. Ben de bir Python dostu olarak dilim döndüğünce ve 3.5 ile karşılaştırmalı olarak bu özelllikleri anlatmaya çalışacağım.

SECRETS:

Hepimiz gibi Python Programlama Dilinin de sırları var artık. Şakayı bir yana bırakıp dile yeni eklenen bu kütüphaneye yakından bir bakacak olursak eğer, kriptografi ile ilgili ihtiyaçlardan doğan bir kütüphane olduğunu göreceğiz. Biraz daha detaya inersek secrets’in asıl rol alacağı nokta şifre oluşturma, kimlik doğrulama gibi konular olacaktır.

Gelin bir de basit bir örnek ile göz atalım:


import string
import secrets
sifre_karakterleri = string.ascii_letters + string.digits
sifre = ''.join(secrets.choice(alphabet) for i in range(6))
print("Oluşturduğumuz şifre: ",sifre)

Peki, biz burada tam olarak ne yaptık? Öncelikle sifre_karakterleri isimli değişkene tüm ingilizce büyük ve küçük harfler ile rakamlardan oluşan bir string atadık. sonra da secrets kütüphanesinin de yardımı ile sifre isimli değişkene sifre_karakterleri değişkeninden  6 adet rast gele veriyi alarak ekledik.
Detaylar için: Secrets

CPYTHON GELİŞTİRMELER

Sözlük yapısındaki geliştirmelerle %20’nin üzerinde bir bellek tasarrufu ve buna bağlı performansta bir artış iddia edilmekte.
Ayrıca __init_subclass__ isimli bir metod ile alt sınıf oluşturabileceğiz.

Peki nedir bu __init_subclass__ ?

# EBEVEYN
class AliRizaBey:
subclasses=[] motto=”Yavrularım!”
def__init_subclass__(cls,**kwargs):
super().__init_subclass__(**kwargs)
cls.subclasses.append(cls)
print(cls.motto)

# HAYIRSIZ EVLAT

class Okkes(AliRizaBey):
print(“Baba! para ver bana kumar oynicim!”)
pass
#HAYIRLI EVLAT
class Hakki(AliRizaBey):
print(“Baba! Babacığım!”)
pass
#Ne yapmışız dünya alem görsün
print(AliRizaBey().subclasses)

 

Görüldüğü üzere artık AliRizaBey sınıfı paraları sıfırlayacak evlatlar üretebilir.
Cpython kısmı ile ilgili bir de PYTHONMALLOC konusuna değinelim. Resmi döküman diyor ki PYTHONMALLOC ortam değişkeni ile yorumlayıcının hafiza atamalarını ve erişim hatalarını debug edebilecekmişiz. Guido diyorsa doğrudur deyip bir sonraki yeniliğe geçiyoruz.

STANDART KÜTÜPHANE RÖTUŞLARI:

Asyncio ile ilgili iyileştirmeler, Pathlib artık os.path uyumlu, datetime modül desteği ile yerel saatlerimizi ayarlayabileceğiz.
Typing ile ilgili iyileştirmeler.

GÜVENLİK İYİLEŞTİRMELERİ

Secrets ile şifrelemek daha kolay (sanki bahsetmiştik bundan)
OpenSSL 1.1.0 Hashlib modülleri tarafından destekleniyor artık vs vs.

STRING INTERPOLATION:

Sevgili Python severler artık Rubycilerin yanında daha bir gururla dimdik durabilecek. “” işaretleri içersinde yani Stringimizde bir değişken değerini {} işaretleri içerisinde çağırabileceksiniz.
lokasyon = “Sparta”
print(f”This is {lokasyon}aaaaa!”)
Yine Rubycilerden neyiniz eksik ki çok büyük sayıları okunaklı yazamayasınız. Artık siz de _ işaretini kullanarak on yüz bin milyon baloncuğu okunanaklı yazabilirsiniz. (1_010_010_001_000_000)
Maalesef bu yazıdaki eyyorlamamız da burada bitmiş oldu. Daha ayrıntılı ve farklı bir bakış açısı için Python Türkiye sitesinden Ali Yaman’ın yazısını okumanızı tavsiye ederim. Hepinize saygı ve sevgilerimi sunarım.

Hakkında Gökhan Çağlar

Yazar, Şair, Hayalperest, Rubyist

Bunu mu demek istemiştiniz?

Ruby

Rakip Kardeşler Python ve Ruby Programlama Dillerinin Benzerlikleri ile Farkları

Bir yandan yazılmaya çalışılan bir kurgu roman bir yandan aslında Manga olarak çıkması planlanmış ama …

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir