4 Schlüssel zum Programmieren von Python im Jahr 2022

Sie möchten Python-Code schreiben, der alle Vorteile der neuen und leistungsstarken Programmiersprache nutzt? Hier sind vier Bereiche, die Sie sich anschauen sollten. [...]

(c) pixabay.com

Obwohl Python im letzten Jahr (2021) 30 Jahre alt geworden ist, hat die Sprache erst in den letzten Jahren die große Verbreitung, das Wachstum und die vorausschauende Entwicklung erlebt, die wir mit ihr verbinden. Viele Funktionen von Python sind seit ihren Anfängen unverändert geblieben, aber mit jedem Jahr, das vergeht, und mit jeder neuen Version von Python gibt es neue Möglichkeiten, Dinge zu tun, und neue Libraries, die von diesen Fortschritten profitieren.

Python hat also seine alten und seine neuen Techniken. Natürlich ist es sinnvoll, zu lernen, wie man mit Python arbeitet, indem man seine modernsten und bequemsten Funktionen nutzt. Hier stellen wir Ihnen die wichtigsten Konzepte vor, die Sie kennen müssen, um im Jahr 2022 modernes Python zu schreiben – Software, die die neuesten und besten Idiome, Konzepte und Fähigkeiten von Python nutzt.

Type Hinting in Python

Die kürzlich eingeführte Syntax des Type Hinting in Python ermöglicht es Linters und Code-Qualitätswerkzeugen von Drittanbietern, Ihren Code vor der Ausführung zu analysieren und mögliche Fehler zu erkennen, bevor sie auftreten. Je häufiger Sie Python-Code erstellen, der mit anderen geteilt werden soll, desto wahrscheinlicher ist es, dass Sie (und alle anderen!) von der Verwendung von Type Hints profitieren werden.

Mit jeder neuen Version von Python werden immer ausgefeiltere und leistungsfähigere Tipps zur Formatierung eingeführt. Wenn Sie sich angewöhnen, die Verwendung von Type Annotations in kurzer Zeit zu lernen, werden Sie besser gerüstet sein, jede neue Type Hinting-Innovation zu nutzen, wenn sie eingeführt wird.

Es ist wichtig, sich daran zu erinnern, dass Type Hints optional und nicht obligatorisch sind. Nicht jedes Projekt braucht sie. Verwenden Sie Type Hints, um Ihre größeren Projekte verständlich zu machen, aber lassen Sie sie ruhig bei einem 50-Zeilen-Wegwerfskript weg. Und beachten Sie, dass Typ-Hinweise zwar nicht zur Laufzeit erzwungen werden, Sie aber Pydantic verwenden können, um dies zu ermöglichen. Viele weit verbreitete Python-Projekte, wie z.B. FastAPI, nutzen Pydantic ausgiebig.

Virtuelle Python-Umgebungen und Paketverwaltung

Bei einfachen Projekten und anspruchslosen Entwicklungsaufgaben können Sie oft einfach das in Python eingebaute Werkzeug venv verwenden, um Projekte und ihre Anforderungen voneinander zu trennen. Aber die jüngsten Fortschritte bei den Python-Tools bieten Ihnen mehr Möglichkeiten:

Pyenv: Wenn Sie mehrere Python-Versionen installiert haben müssen (3.8, 3.9, 3.10), um verschiedenen Projektanforderungen gerecht zu werden, können Sie mit Pyenv entweder global oder projektbezogen zwischen ihnen wechseln. Es ist nützlich, wenn Sie viel mit verschiedenen Python-Versionen direkt auf der Kommandozeile arbeiten, außerhalb des Kontextes einer projektbezogenen virtuellen Umgebung. Beachten Sie, dass es keine offizielle Windows-Unterstützung gibt, aber eine inoffizielle Windows-Portierung existiert.

Pipenv: Pipenv wird als „Python-Entwicklungs-Workflow für Menschen“ bezeichnet und dient der Verwaltung einer virtuellen Umgebung sowie aller Abhängigkeiten für Ihr Projekt. Es stellt auch sicher, dass die Abhängigkeiten deterministisch sind – dass Sie die spezifischen Versionen erhalten, die Sie wollen, und dass sie in der von Ihnen gewünschten Kombination funktionieren. Pipenv spricht jedoch nicht mit der Paketierung in irgendeiner Form, so dass es nicht ideal für Projekte ist, die Sie schließlich auf PyPI hochladen oder mit anderen teilen möchten.

Poetry: Poetry erweitert das Toolset von Pipenv und verwaltet nicht nur Projekte und Anforderungen, sondern macht es auch einfach, das Projekt auf PyPI bereitzustellen. Es verwaltet auch virtuelle Umgebungen für Sie, getrennt von Ihren Projektverzeichnissen.

PDM: PDM (kurz für „Python Development Master“) ist das neueste und innovativste Projekt in dieser Richtung. Wie Poetry und Pipenv bietet PDM eine einzige Schnittstelle zum Einrichten eines Projekts, zum Verwalten seiner Abhängigkeiten und zum Erstellen von Distributionsartefakten daraus. PDM verwendet auch den PEP 582-Standard für die lokale Speicherung von Paketen in einem Projekt, so dass keine virtuellen Umgebungen pro Projekt erstellt werden müssen. Dieses Tool ist jedoch relativ neu, daher sollten Sie sich vergewissern, dass es provisorisch funktioniert, bevor Sie es in der Produktion einsetzen.

Neue Python-Syntax

Die Entwicklung von Python hat zu vielen neuen Ergänzungen in der Sprache selbst geführt. Die letzten Versionen von Python haben nützliche syntaktische Konstruktionen hinzugefügt, die eine leistungsfähigere und prägnantere Programmierung ermöglichen. Einige der jüngsten Ergänzungen umfassen:

Pattern Matching

Die größte Neuerung, das strukturelle Pattern-Matching, das in Python 3.10 eingeführt wurde, ist mehr als nur „switch/case für Python“, wie es manchmal beschrieben wurde. Es ermöglicht Ihnen, Entscheidungen über den Kontrollfluss auf der Grundlage des Inhalts oder der Struktur von Objekten zu treffen.

Der ‚Walross-Operator‘

Der in Python 3.8 hinzugefügte „Walross-Operator“, so benannt nach seinem Aussehen (:=), führt Zuweisungsausdrücke ein, mit denen man einer Variablen einen Wert zuweisen und dann in einem einzigen Schritt einen Test auf die Variable anwenden kann. Dadurch wird der Code in vielen häufigen Situationen weniger langatmig, z. B. bei der Überprüfung des Rückgabewerts einer Funktion, während die Ergebnisse gleichzeitig erhalten bleiben.

Positional-only-Parameter

Eine unbedeutende, aber nützliche Neuerung in der Python-Syntax ist die Angabe von Positionsparametern. Damit können Sie angeben, welche Funktionsparameter als Positionsparameter und nicht als Schlüsselwortargumente angegeben werden müssen. Die Gründe dafür sind im Allgemeinen die Verbesserung der Übersichtlichkeit und die Erleichterung der zukünftigen Entwicklung einer Codebasis, Ziele, auf die sich auch viele der anderen neuen Funktionen von Python konzentrieren.

Python-Tests

Das Schreiben von Tests für eine Codebasis ist wie die tägliche Verwendung von Zahnseide: Alle sind sich einig, dass es eine gute Sache ist, aber nur wenige von uns tun es tatsächlich, und noch weniger tun es richtig. Moderne Python-Codebasen verdienen es, Testsuiten zu haben, und die aktuellen Testwerkzeuge machen die Erstellung von Testsuiten einfacher denn je.

Python hat sein eigenes eingebautes Test-Framework, Unittest, und obwohl Unittest als Standard nicht schlecht ist, sind sein Design und sein Verhalten veraltet. Das Pytest-Framework hat sich als gängiger Ersatz herauskristallisiert. Es ist flexibler (Sie können Tests in jedem Teil Ihres Codes deklarieren, nicht nur in einer Teilmenge) und erfordert das Schreiben von weit weniger Boilerplate. Außerdem verfügt Pytest über zahlreiche Add-ons zur Erweiterung seiner Funktionalität (z. B. zum Testen von asynchronem Code).

Eine weitere wichtige Ergänzung zum Testen ist die Codeabdeckung, d. h. die Bestimmung, wie viel der Codebasis die Tests tatsächlich abdecken. Das Modul Coverage deckt dies ab, und Pytest wird sogar mit einem Plug-in geliefert, das mit diesem Modul arbeitet.

*Serdar Yegulalp ist Senior-Redakteur bei InfoWorld und konzentriert sich auf maschinelles Lernen, Containerisierung, Devops, das Python-Ökosystem und regelmäßige Reviews.


Mehr Artikel

Gregor Schmid, Projektcenterleiter bei Kumavision, über die Digitalisierung im Mittelstand und die Chancen durch Künstliche Intelligenz. (c) timeline/Rudi Handl
Interview

„Die Zukunft ist modular, flexibel und KI-gestützt“

Im Gespräch mit der ITWELT.at verdeutlicht Gregor Schmid, Projektcenterleiter bei Kumavision, wie sehr sich die Anforderungen an ERP-Systeme und die digitale Transformation in den letzten Jahren verändert haben und verweist dabei auf den Trend zu modularen Lösungen, die Bedeutung der Cloud und die Rolle von Künstlicher Intelligenz (KI) in der Unternehmenspraxis. […]

News

Richtlinien für sichere KI-Entwicklung

Die „Guidelines for Secure Development and Deployment of AI Systems“ von Kaspersky behandeln zentrale Aspekte der Entwicklung, Bereitstellung und des Betriebs von KI-Systemen, einschließlich Design, bewährter Sicherheitspraktiken und Integration, ohne sich auf die Entwicklung grundlegender Modelle zu fokussieren. […]

News

Datensilos blockieren Abwehrkräfte von generativer KI

Damit KI eine Rolle in der Cyberabwehr spielen kann, ist sie auf leicht zugängliche Echtzeitdaten angewiesen. Das heißt, die zunehmende Leistungsfähigkeit von GenAI kann nur dann wirksam werden, wenn die KI Zugriff auf einwandfreie, validierte, standardisierte und vor allem hochverfügbare Daten in allen Anwendungen und Systemen sowie für alle Nutzer hat. Dies setzt allerdings voraus, dass Unternehmen in der Lage sind, ihre Datensilos aufzulösen. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*