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