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()’yi tanımlar ve + ile * operatörlerini destekler. | |
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