Python 3.6¶
Python 3.6 beta 1, 12 Eylül 2016’da yayınlandı ve yeni özelliklerin bir özetine buradan ulaşılabilir:
Yeni Söz Dizimi Özellikleri | Durum | |
Sabit Değer Dizgi Biçimlendirmesi | Tamamlandı | |
Sayısal Sabit Değerlerde Alt Çizgiler | Tamamlandı | |
Eşzamansız Üreteçler | ||
Değişken Açıklamaları için Söz Dizimi (geçici) | Tamamlandı | |
Eşzamansız Kavramalar | ||
Yeni Yerleşik Özellikler | ||
Bir fonksiyonda kwargs sırasının korunması | ||
Sınıf oluşturmanın daha basit özelleştirilmesi | Kısmi [1] | |
Sınıf Niteliği Tanımlama Sırasının Korunması | ||
Standart Kütüphane Değişiklikleri | ||
Yerel Saat Belirsizliğinin Giderilmesi | ||
Standart Kütüphaneye Bir Secrets Modülü Eklenmesi | ||
Bir dosya sistemi yol protokolü eklenmesi | ||
CPython İç Yapısı | ||
dict’e özel bir sürüm eklenmesi | Yapılmayacak | |
CPython’a bir çerçeve değerlendirme API’si eklenmesi | ||
Linux/Windows Değişiklikleri | ||
| ||
Windows konsol kodlamasının UTF-8’e değiştirilmesi | ||
Windows dosya sistemi kodlamasının UTF-8’e değiştirilmesi | ||
Diğer Dil Değişiklikleri:
Bir global veya nonlocal ifadesi artık aynı kapsamda etkilenen adın ilk kullanımından önce metinsel olarak yer almalıdır. Önceden bu bir SyntaxWarning idi. | |
Artık ilgili işlemin kullanılamadığını belirtmek için özel bir metoda None atamak mümkündür. Örneğin, bir sınıf __iter__() metodunu None olarak ayarlarsa, sınıf yinelenebilir değildir. | |
Tekrarlanan uzun geri izleme satırı dizileri artık [Previous line repeated {count} more times] şeklinde kısaltılır | |
Import, bir modülü bulamadığında artık yeni ModuleNotFoundError istisnasını fırlatır. Şu anda (try-except içinde) ImportError’ı denetleyen kod yine de çalışacaktır. | |
Sıfır argümanlı super() fonksiyonuna dayanan sınıf metotları, sınıf oluşturma sırasında metasınıf metotlarından çağrıldığında artık doğru şekilde çalışacaktır. |
Yerleşik modüllerdeki değişiklikler:
array.array nesnesinin tükenmiş yineleyicileri, yinelenen dizi genişletilse bile artık tükenmiş kalacaktır. | |
b2a_base64() fonksiyonu artık, yeni satır karakterinin dönüş değerine eklenip eklenmeyeceğini denetlemek için isteğe bağlı bir newline anahtar sözcük argümanını kabul eder | Tamamlandı |
Yeni cmath.tau (τ) sabiti eklendi | |
Yeni sabitler: math.inf ve math.nan ile eşleşmesi için cmath.inf ve cmath.nan, ayrıca complex repr tarafından kullanılan biçimle eşleşmesi için cmath.infj ve cmath.nanj | |
Boyutlandırılmış yinelenebilir kapsayıcı sınıfları temsil etmek için yeni Collection soyut temel sınıfı eklendi | |
Yeni Reversible soyut temel sınıfı, __reversed__() metodunu da sağlayan yinelenebilir sınıfları temsil eder. | |
Yeni AsyncGenerator soyut temel sınıfı, eşzamansız üreteçleri temsil eder. | |
namedtuple() fonksiyonu artık isteğe bağlı bir module anahtar sözcük argümanını kabul eder; bu argüman belirtildiğinde, döndürülen adlandırılmış demet sınıfının __module__ niteliği için kullanılır. | |
namedtuple() için verbose ve rename argümanları artık yalnızca anahtar sözcüktür. | |
Özyinelemeli collections.deque örnekleri artık pickle ile serileştirilebilir. | |
Modüle BLAKE2 karma fonksiyonları eklendi. blake2b() ve blake2s() her zaman kullanılabilir ve BLAKE2’nin tüm özellik kümesini destekler. | |
SHA-3 karma fonksiyonları sha3_224(), sha3_256(), sha3_384(), sha3_512() ve SHAKE karma fonksiyonları shake_128() ile shake_256() eklendi. | |
Paroladan türetilen anahtar türetme fonksiyonu scrypt() artık OpenSSL 1.1.0 ve daha yeni sürümlerle kullanılabilir. | |
json.load() ve json.loads() artık ikili girdiyi destekler. Kodlanmış JSON, UTF-8, UTF-16 veya UTF-32’den biri kullanılarak temsil edilmelidir. | |
Yeni math.tau (τ) sabiti eklendi | Tamamlandı |
Yeni bir close() metodu, bir scandir() yineleyicisinin açıkça kapatılmasına olanak tanır. scandir() yineleyicisi artık bağlam yöneticisi protokolünü destekler. | |
Linux’ta, os.urandom() artık güvenliği artırmak için sistem urandom entropi havuzu başlatılana kadar bloklar. | |
Linux getrandom() sistem çağrısı (rastgele bayt al), artık yeni os.getrandom() fonksiyonu olarak sunulmaktadır. | |
Düzenli ifadelerde değiştirici aralıkları desteği eklendi. Örnekler: ‘(?i:p)ython’, ‘python’ ve ‘Python’ ile eşleşir ancak ‘PYTHON’ ile eşleşmez; ‘(?i)g(?-i:v)r’, ‘GvR’ ve ‘gvr’ ile eşleşir ancak ‘GVR’ ile eşleşmez. | |
Eşleşme nesnesi grupları, group() ile eşdeğer olan __getitem__ aracılığıyla erişilebilir. Yani mo[‘name’] artık mo.group(‘name’) ile eşdeğerdir. | |
Eşleşme nesneleri artık grup indeksleri olarak indeks benzeri nesneleri destekler. | |
ioctl() fonksiyonu artık SIO_LOOPBACK_FAST_PATH denetim kodunu destekler. | |
getsockopt() sabitleri SO_DOMAIN, SO_PROTOCOL, SO_PEERSEC ve SO_PASSSEC artık desteklenmektedir. | |
setsockopt() artık setsockopt(level, optname, None, optlen: int) biçimini destekler. | |
socket modülü artık Linux Kernel kripto API’si ile arabirim oluşturmak için AF_ALG adres ailesini destekler. ALG_, SOL_ALG ve sendmsg_afalg() eklendi. | |
Yeni Linux sabitleri TCP_USER_TIMEOUT ve TCP_CONGESTION eklendi. | |
ssl, OpenSSL 1.1.0’ı destekler. Önerilen minimum sürüm 1.0.2’dir. | |
3DES, varsayılan şifre takımlarından kaldırıldı ve ChaCha20 Poly1305 şifre takımları eklendi. | |
SSLContext artık seçenekler ve şifreler için daha iyi bir varsayılan yapılandırmaya sahiptir. | |
SSL oturumu, yeni SSLSession sınıfıyla bir istemci tarafı bağlantısından diğerine kopyalanabilir. TLS oturum sürdürme, ilk el sıkışmayı hızlandırabilir, gecikmeyi azaltabilir ve performansı artırabilir. | |
Yeni get_ciphers() metodu, şifre önceliği sırasına göre etkin şifrelerin bir listesini almak için kullanılabilir. | |
Tüm sabitler ve bayraklar IntEnum ve IntFlags türüne dönüştürüldü. | |
SSLContext için sunucu ve istemci tarafına özgü TLS protokolleri eklendi. | |
TLS 1.3 el sıkışma sonrası kimlik doğrulamasını etkinleştirmek için SSLContext.post_handshake_auth ve başlatmak için ssl.SSLSocket.verify_client_post_handshake() eklendi. | |
artık ‘e’ biçim belirleyicisi aracılığıyla IEEE 754 yarı duyarlıklı kayan noktalı sayıları destekler. | |
Yeni getfilesystemencodeerrors() fonksiyonu, Unicode dosya adları ile bayt dosya adları arasında dönüştürme yapmak için kullanılan hata modunun adını döndürür. | |
compress() ve decompress() fonksiyonları artık anahtar sözcük argümanlarını kabul eder | |
Notlar