Welche Funktionen von Python 3.0 wird Ihre tägliche Codierung ändern? [geschlossen]

StackOverflow https://stackoverflow.com/questions/340972

  •  19-08-2019
  •  | 
  •  

Frage

kam gerade und hat Gobs von ordentlich Neuigkeiten ! Ich bin gespannt, was ist SO Pythonistas am meisten begeistert? Welche Funktionen werden die Art und Weise beeinflussen Sie Code auf einer täglichen Basis zu schreiben, oder haben Sie schon freuen?

War es hilfreich?

Lösung

Es gibt ein paar Dinge, die ich sehr interessiert bin:

Andere Tipps

Ich hoffe, dass Ausnahme Verkettungs setzt sich durch. Der Verlust Ausnahme Stack-Traces aufgrund der Antipattern unten dargestellt hatte mein Haustier ärgert für eine lange Zeit:

try:
   doSomething( someObject)
except:
   someCleanup()

   # Thanks for passing the error-causing object,
   # but the original stack trace is lost :-(

   raise MyError("Bad, bad object!", someObject)

Ich weiß, ich weiß, einige Kontexte Info auf die ursprüngliche Ausnahme Zugabe von und den ursprünglichen Stack-Trace Erhaltung war möglich, aber es benötigte, um einen wirklich hässlichen Hack. Jetzt können Sie (und sollte !) Nur:

raise MyError("Bad, bad object!", someObject) from original_exception

und bekommt leicht beide oben. So, wie ein Teil meiner heiligen Mission gegen verloren Stack-Traces:

Die Leute, vergessen Sie nicht die aus Klausel, wenn reraising Ausnahmen! Danke.

Ganz ehrlich, nichts davon. Während ich mich wahrscheinlich einige der neuen Syntax finden werde ich vor allem Python verwenden für die schnelle und einfache Skripte und reguläre Ausdrücke.

Ich denke, die neuen Funktionen viele kleine Dinge ein wenig einfacher für viele Menschen und ein paar große Dinge einfach für ein paar Leute machen. Ich bin aber skeptisch irgendwelcher Ansprüche, dass eine Menge Leute werden massive Gewinne in der Produktivität am Ende zu finden.

Kurz gesagt, ich denke, diese Veränderungen die Dinge ein wenig besser Gesamt machen wird, aber erwarten Sie keine Wunder.

Nicht so sehr ein Merkmal, aber ich denke, dass die Bibliothek Bereinigung von großer Hilfe sein, esp. neuen Python-Programmierer. Bei mehr als einer Gelegenheit haben wollte ich etwas in Python tun, nur zwei enthielten Bibliotheken zu finden, die diese Funktionalität bieten, ohne ersichtlichen Grund, warum ich einen über die andere wählen soll.

Hier ist ein guter Artikel, die die neuen Funktionen und / oder Unterschiede in Bezug auf Python 2.x Verse Python 3.

erklärt

http: //www.b-list. org / weblog / 2008 / Dezember / 05 / python-3000 /

Trotz allem, was taten sie möglichst geringen Migrationskurs mit interpretierten Sprachen zu erreichen, finde ich die ganze Veröffentlichung von python3 als zehn Jahren des schmerzhaften Weges der Migration. Deshalb finde ich es nicht besonders anzieht.

Die Verbesserungen, die sie haben sind alle gut und wichtig. Zwei verschiedene Typen für Strings haben eine echte Quelle von Belästigungen überall gewesen, deshalb ist es gut, sie wurde von Unicode-Objekt zu befreien und eingeführt Bytes Objekt beiseite jetzt Unicode-str.

Der bignum vs. num -change war aus Bequemlichkeit und ich glaube auch, dass eine gute Wahl war. Insgesamt gereinigt sie die Sprache von schädlichen Komponenten, die sie in den letzten zehn Jahren angesammelt.

Second Schlimmste, was sie taten, war 10% langsamer Umsetzung, als wenn die Geschwindigkeit nicht Python das Problem bereits sein würde.

ich glaube, die Veröffentlichung von python3 schiebt Ruf nach unten Python anstatt verbessert es. Gerade jetzt sind sie zurück in den Anfang mit ihrer Sprache, wenn es darum geht, Bibliothek zu unterstützen.

Nicht mit so viel ..

zu tun
  • Nicht mit über die Verwendung von unicode() oder u"" Sorgen zu machen.

  • Nicht mit obwohl die Dokumentation von urllib urllib2 und httplib zu suchen, um zu finden, wo, dass Funktionen, die ich brauche, um eine Datei zu verschlüsseln und über eine POST-Anfrage laden

  • Nicht mit etwa ob except TypeError, something: sorgen eine TypeError und something oder TypeError in `etwas ..

  • fangen

Und umgekehrt, mit an dem docs suchen wieder! Ich weiß gut genug, python jetzt kann ich die meisten Dinge tun, ohne zu pydoc Bezug genommen wird, aber jedes Mal, wenn ich es tue, entdecke ich einige andere nützliche Modul oder Funktion.

Die print-Anweisung. <sniff> Ich fange es schon zu verpassen.

Eigentlich bevor auch nur zu Python gehen 2.6, wir Spülen print für logging.debug. Dies ist nur von print beiläufig für die Fehlersuche, Support und Entwicklung aus der Gewohnheit erhalten verwenden.

Was bleibt, sind einige Programme, die tatsächlich Sachen auf stdout produzieren. Für diejenigen, können wir eine 2.6 / 3.0 kompatibel Funktion „Drucken“ in einem unserer Bibliotheken einzuführen.

Wörterbuch Comprehensions sind nicht unbedingt weltbewegend, aber sie sind sehr nett.

Während {k: v for k, v in list} länger als dict(list) es ist flexibler und selbsterklärend.

Eines der am meisten unterschätzten Eigenschaften von Python 3 ist die Einführung der abstrakten Basisklassen. Dies ist etwas, die Python-Programmierung auf Anhieb nicht revolutionieren, sondern stellt eine interessante Verschiebung von einem losen Duck Typing Ansatz in Richtung besser definierte Schnittstellen.

Weitere Informationen finden Sie in PEP 3119 .

So gut wie alle von ihnen, wie ich die Veröffentlichung von Python 3 als Motivation nehme die Sprache zu lernen.

Unicode (UTF-8) ist wirklich wichtig für die Menschen in nicht-Englisch sprechenden Ländern.

Ich wusste nicht, wie die Codierung am Anfang der Datei angeben, weil ich immer vergessen. Normalerweise mein Text ist kompatibel mit ASCII, weil ich bin mit UTF-8, so dass es funktioniert ohne Codierung Spezifikation. Aber wenn ich meinen Namen schreiben (mit Akzent) oder € Zeichen, bricht es ... Ich landete schreiben Unicode-Zeichen mit ihrer \ uxxxx Darstellung, aber es ist ein bisschen kryptisch!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top