Python 3.5¶
Aşağıda, MicroPython üzerindeki etkilerine göre gruplandırılmış Python 3.5 için tamamlanmış/kabul edilmiş PEP’lerin bir listesi yer almaktadır.
Sözdizimine yönelik uzantılar |
Durum |
|
Ek paket açma genellemeleri |
Kısmi |
|
Yeni bir matris çarpma operatörü |
Tamamlandı |
|
|
Tamamlandı |
|
Çalışma zamanına yönelik uzantılar ve değişiklikler |
||
İkili dizeler için % biçimlendirme |
Tamamlandı |
|
|
Tamamlandı |
|
Üreteçler (generator) içindeki |
Tamamlandı |
|
Standart kütüphane değişiklikleri |
||
|
||
|
Tamamlandı |
|
Çeşitli değişiklikler |
||
Geliştirilmiş Python zip uygulama desteği |
||
Python Başlatıcısını sanal ortamlardan haberdar etme |
İlgili değil |
|
Tip ipuçları (yalnızca öneri niteliğinde) |
Tamamlandı [1] |
|
PYO dosyalarının ortadan kaldırılması |
İlgili değil |
|
Uzantı modülü yüklemesinin yeniden tasarlanması |
||
Diğer Dil Değişiklikleri:
namereplace hata işleyicileri eklendi. backslashreplace hata işleyicileri artık kod çözme ve çeviri ile de çalışıyor. |
|
Özellik (property) belge dizeleri (docstring) artık yazılabilir. Bu, özellikle collections.namedtuple() belge dizeleri için kullanışlıdır |
|
Göreli içe aktarmalar içeren döngüsel içe aktarmalar artık desteklenmektedir. |
Yeni Modüller:
Yerleşik modüllerdeki değişiklikler:
OrderedDict sınıfı artık C dilinde uygulanmaktadır, bu da onu 4 ila 100 kat daha hızlı hale getirir. |
|
OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() görünümleri artık reversed() yinelemesini desteklemektedir. |
|
deque sınıfı artık index(), insert() ve copy() metotlarını tanımlamakta ve + ile * operatörlerini desteklemektedir. |
|
namedtuple() tarafından üretilen belge dizeleri (docstring) artık güncellenebilir. |
|
UserString sınıfı artık str sınıfının karşılık gelen metotlarıyla eşleşmek için __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() ve maketrans() metotlarını uygulamaktadır. |
|
merge() içindeki öğe karşılaştırması artık yeni bir isteğe bağlı key anahtar argümanında bir key fonksiyonu geçirilerek özelleştirilebilir ve öğe karşılaştırmasını tersine çevirmek için yeni bir isteğe bağlı reverse anahtar argümanı kullanılabilir |
|
Temel ham akışın RawIOBase.read() veya RawIOBase.readinto() metotlarına en fazla bir çağrı kullanan yeni bir BufferedIOBase.readinto1() metodu |
|
JSON kod çözücü artık hata hakkında daha iyi bağlam bilgisi sağlamak için ValueError yerine JSONDecodeError ortaya çıkarmaktadır. |
|
math modülüne iki yeni sabit eklendi: inf ve nan. |
Tamamlandı |
Yeni bir isclose() fonksiyonu yaklaşık eşitliği test etmek için bir yol sağlar. |
|
Yeni bir gcd() fonksiyonu eklendi. fractions.gcd() fonksiyonu artık kullanımdan kaldırılmıştır. |
|
DirEntry nesnelerinden oluşan bir yineleyici döndüren yeni scandir() fonksiyonu eklendi. |
|
urandom() fonksiyonu artık Linux 3.17 veya daha yenisinde getrandom() sistem çağrısını ve OpenBSD 5.6 ile daha yenisinde getentropy() sistem çağrısını kullanmakta, böylece /dev/urandom kullanma ihtiyacını ortadan kaldırmakta ve olası dosya tanımlayıcısı tükenmesi nedeniyle oluşabilecek başarısızlıkları önlemektedir. |
|
Yeni get_blocking() ve set_blocking() fonksiyonları, bir dosya tanımlayıcısının engelleme modunun (O_NONBLOCK) alınmasına ve ayarlanmasına olanak tanır. |
|
Geçirilen her yol adının en uzun ortak alt yolunu döndüren yeni bir os.path.commonpath() fonksiyonu vardır |
|
Sabit uzunluklu gruplara yapılan referanslar ve koşullu referanslar artık geriye bakış (lookbehind) ifadelerinde izin verilmektedir |
|
Düzenli ifadelerdeki yakalama gruplarının sayısı artık 100 ile sınırlı değildir. |
|
sub() ve subn() fonksiyonları artık eşleşmeyen grupları bir istisna ortaya çıkarmak yerine boş dizelerle değiştirmektedir. |
|
re.error istisnaları artık hata hakkında daha iyi bağlam bilgisi sağlayan msg, pattern, pos, lineno ve colno gibi yeni özniteliklere sahiptir |
|
Zaman aşımlı fonksiyonlar artık bir sistem saati yerine monotonik bir saat kullanmaktadır. |
|
Yeni bir socket.sendfile() metodu, UNIX üzerinde yüksek performanslı os.sendfile() fonksiyonunu kullanarak bir dosyanın bir soket üzerinden gönderilmesine olanak tanır; bu da yüklemelerin düz socket.send() kullanımına göre 2 ila 3 kat daha hızlı olmasını sağlar |
|
socket.sendall() metodu artık her bayt alındığında veya gönderildiğinde soket zaman aşımını sıfırlamamaktadır. Soket zaman aşımı artık tüm verileri göndermek için maksimum toplam süredir. |
|
socket.listen() metodunun backlog argümanı artık isteğe bağlıdır. Varsayılan olarak SOMAXCONN veya 128 değerinden hangisi daha küçükse ona ayarlanır. |
Tamamlandı |
Bellek BIO Desteği |
|
Uygulama Katmanı Protokol Müzakeresi (ALPN) Desteği |
|
Kullanımdaki gerçek protokol sürümünü sorgulamak için yeni bir SSLSocket.version() metodu vardır. |
|
SSLSocket sınıfı artık bir SSLSocket.sendfile() metodunu uygulamaktadır. |
|
SSLSocket.send() metodu artık, işlemin engelleneceği durumlarda engelleyici olmayan bir sokette ya ssl.SSLWantReadError ya da ssl.SSLWantWriteError istisnasını ortaya çıkarmaktadır. Daha önce 0 döndürürdü. |
|
cert_time_to_seconds() fonksiyonu artık RFC 5280 uyarınca girdi zamanını yerel zaman olarak değil UTC olarak yorumlamaktadır. Ayrıca, dönüş değeri her zaman bir int’tir. |
|
Yeni SSLObject.shared_ciphers() ve SSLSocket.shared_ciphers() metotları, el sıkışma (handshake) sırasında istemci tarafından gönderilen şifrelerin listesini döndürür. |
|
SSLSocket sınıfının SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() ve SSLSocket.write() metotları artık her bayt alındığında veya gönderildiğinde soket zaman aşımını sıfırlamamaktadır. |
|
match_hostname() fonksiyonu artık IP adreslerinin eşleştirilmesini desteklemektedir. |
|
Yeni bir set_coroutine_wrapper() fonksiyonu, bir async def fonksiyonu tarafından bir eşyordam (coroutine) nesnesi oluşturulduğunda her seferinde çağrılacak global bir kancanın ayarlanmasına olanak tanır. Karşılık gelen bir get_coroutine_wrapper() fonksiyonu, mevcut ayarlanmış sarmalayıcıyı (wrapper) elde etmek için kullanılabilir. |
|
Yeni bir is_finalizing() fonksiyonu, Python yorumlayıcısının kapanıp kapanmadığını kontrol etmek için kullanılabilir. |
|
monotonic() fonksiyonu artık her zaman kullanılabilir |
|
Notlar