Python 3 yeni özelliklerin çözdüğü sorunlar nelerdir? [kapalı]


18

Python 3'ün yeni özellikleri şunları söylüyor:

çoğunlukla iyi bilinen sıkıntıları ve siğilleri düzeltiyoruz ve çok sayıda eski rüzgarı kaldırıyoruz

Neyin farklı olduğunu söyler (düzeltme) ama nedenini değil (sorunları). Sorunların ne olduğunu bulamadım. Düzeltmelerin çözdüğü sorunlar nelerdi?


1
Bununla birlikte, siğilleri çıkarmadılar, 'kendini' bir sınıf yöntemine geçirmek zorunda olmanın sebebidir. Başarısız tren.
Rig

Yanıtlar:


11

Hemen akla gelenleri isimlendireceğim.

  • Yalnızca anahtar kelime bağımsız değişkenleri: KEP'in mantığında açıklanmıştır.
  • nonlocal: Bu olmadan, kapatmalar kapatılan değişkenlerin üzerine yazamaz. Bu ihtiyaç, dekoratörler ve diğer üst düzey işlevlerle zaman zaman ortaya çıkar. Değişken herhangi bir değişebilir durumu, değiştirilebilir bir nesnede depolayan tek makul çözüm (harici API'yi değiştirmeden) aşırı derecede çirkin.
  • Sözlük ve küme kavrayışları: Sözlük anlaşmaları, liste kavrayışlarına benzer bir şekilde oluşturmak, jeneratör kavramalarıyla yapıldığında daha az hoş ve biraz daha yavaştır. Bu türleri uygun olduğu yerde ekstra ücret ödemeden kullanmamızı sağlar. Set değişmezleri için Ditto, özellikle intestler için (Python 3.2'den itibaren, bunlar da gözetleme deliği optimize edici tarafından optimize edilir).
  • Sekizgen değişmez değerler Python 2'de mevcuttu, ancak 0777gösterim, kullanılmayanlar için bir tuzaktır (diğer bağlamlarda, ne değer ne de bazda önde gelen sıfır değişiklikleri ekleyerek).
  • İkili değişmez değerler, onaltılık değişmez değerlere kıyasla daha az, hatta moreso için faydalıdır.
  • Bayt değişmez değerleri, unicode dizeleri ile bayt dizeleri arasındaki zorunlu ayrımın ve unicode olan dize değişmezlerinin bir belirtisidir. Bu değişiklikler sizi metin ve yorumlanmamış ikili veriler ve kodlamalar hakkında düşünmeye zorlar. Bu önemlidir, aksi takdirde kodlama ile ilgili hataları bulmak için kapsamlı testlere ihtiyacınız vardır (İngilizce konuşan girdilerle, Avrupa / Amerika merkezli aptallar nadiren düşünür).
  • except ex, var-> except ex as varortak hatayı düzeltir except ValueError, IndexError(her ikisini de yakalamalıdır, ancak yalnızca ilkini yakalar ve IndexErroryakalanan istisna ile adın üzerine yazar ).
  • Liste anlama kapsamı: Ad alanlarını kirletmekten kaçının ve bunları jeneratör ifadeleri açısından düşünmeye izin verin.
  • Sözdizimi ve modüller kaldırıldı: Bizi "Bir tane olmalı - ve tercihen yalnızca bir tane - bunu yapmanın açık bir yolu" na yaklaştırın. ve kötü öğretici şeyleri düzeltmek için eski ve baskın şekilde yapışan insanlardan kaçınır.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.