Du hast Fragen? Wir haben Antworten! - Bald findet unser nächster Tag der offenen Tür statt!

Logo site

Variablentypen in Python: Was hat es damit auf sich?

-
2
 Minuten Lesezeit
-
Variablentypen in Python

Python hat sich seit einiger Zeit als eine der führenden Programmiersprachen für Data Science etabliert: Es ist einfach zu erlernen für Personen mit einem Hintergrund als Statistiker, gut ausgestattet mit Bibliotheken, zu allem fähig und ein treuer Begleiter für Data Scientists.

Allerdings kann man Data Science auf einem ziemlich hohen Niveau betreiben, ohne alles über die Besonderheiten zu wissen: Wie viele Data Scientists benutzen Dekoratoren? Ist Python multi-thread oder multi-core?

Als ich neulich versuchte, die Frage zu beantworten, warum der folgende Code zwei verschiedene Ergebnisse anzeigt, habe ich mich gefragt, warum Python so viele verschiedene Ergebnisse anzeigt,

bin ich auf das hier gestoßen.

Für diejenigen, die wie ich schon mit Java gearbeitet haben, mag es Erinnerungen (oder sogar Verletzungen) hervorrufen, aber für einen unerfahrenen Python-Benutzer mag es überraschend sein.

Dynamische Typisierung vs. statische Typisierung

Python ist eine dynamisch typisierte Sprache, d. h. du kannst den Typ einer Variablen ändern. Im Gegensatz dazu zwingt eine statisch typisierte Sprache dazu, den Typ der Variablen zu definieren und ihn während der Lebensdauer der Variablen beizubehalten.

Das macht Python natürlich sehr benutzerfreundlich, da du den Typ einer Variablen nicht im Voraus angeben musst und du ihn leicht ändern kannst. Aber zu versuchen, das mit Java zu tun…

Ich beim Coden in Java - Allegorie

Diese Einfachheit von Python kann auch zu Verwirrung führen.

Wenn du nicht genau weißt, welche Art von Variablen eine Funktion annehmen kann, kannst du Schwierigkeiten haben, den Code einer anderen Funktion zu lesen.

Eine der Funktionen, die Python bietet, ermöglicht es uns, die Illusion einer statischen Typisierung zu erzeugen: Annotationen.

Annotationen

In Python kannst du Annotationen verwenden, um Informationen über den Code, den du gerade schreibst, hinzuzufügen.

Du kannst die Art der Argumente mit einem „:“ und einem String dahinter angeben, aber auch die Art der Ausgabe der Funktion. Auf diese Anmerkungen kann man mit Hilfe von:

was folgendes zurückgibt:

Dennoch habe ich die interne Struktur von Python nicht verändert. Schlimmer noch, es hat keinen Sinn.

und

funktionieren sehr gut…

Was ist also los? Abgesehen vom ästhetischen Aspekt (der relativ ist), ist es völlig unnötig?

Nun, ja und nein…

In der Tat sind diese Annotationen nur ein Mittel, um Informationen über die verschiedenen Argumente und Ausgaben deiner Funktion zu erhalten, aber der Gewinn an Klarheit ist bei der Verwendung der Funktion nicht zu vernachlässigen.

Wenn du mit mehreren Personen zusammenarbeitest oder einfach nur Code austauschst, kann es sehr nützlich sein, die Argumente und Ausgaben einer Funktion, die du benutzt, genau zu identifizieren.

MyPy

Aber man kann diese Annotationen mit einem anderen Werkzeug kombinieren: MyPy. Das ist eine Bibliothek, die nicht wirklich verstanden hat, wie Python funktioniert, und die denkt, dass Annotationen wirklich Typdeklarationen sind.

Sie kann überprüfen, ob du alles richtig machst… ob du Quadrate in Quadrate, Kreise in Kreise und Dreiecke in Dreiecke setzt.

Man sollte die Annotationen also als Hilfe bei der Entwicklung und beim Teilen von Code sehen und MyPy als Anleitung zum sauberen Entwickeln. Zugegeben, es macht keinen großen Unterschied, wenn man auf einem Notebook codiert und alle seine Funktionen aus Sklearn oder Pandas importiert.

Sicherlich würde eine echte statische Typisierung die Arbeit von Python beschleunigen (da Python nicht mehr den Typ von Variablen ableiten müsste), aber es kann helfen, sich zurechtzufinden und ein Übermaß an Codezeilen zu debuggen.

Und obwohl ich weiß, dass Anmerkungen wie gute Vorsätze sind, man nimmt sich vor, sie zu benutzen, und zwei Funktionen später ist alles wieder vergessen, wollte ich dir zumindest von meiner Entdeckung erzählen.

Hat dir dieser Artikel gefallen? Dann melde dich für unseren Newsletter an und erhalte Datentipps, die du sonst nirgends findest!

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.