Type Hints sind Annotationen, die Python zur Laufzeit nicht erzwingt; ein statischer Checker wie mypy oder pyright liest sie und meldet Inkonsistenzen, bevor der Code läuft. Der Gewinn sind ganze Fehlerklassen, die du abfängst, etwa None dort, wo ein Wert erwartet wird, dazu deutlich bessere Editor-Vervollständigung und Refactorings. Sie dokumentieren Absicht außerdem zuverlässiger als ein Docstring, der wegdriftet.
Warum Interviewer das fragen
Typing ist inzwischen die Standarderwartung in ernsthaften Python-Codebases, also prüfen Interviewer sowohl, dass du es nutzt, als auch, dass du seine Grenzen kennst. Zwei Dinge, auf die sie hören: dass Annotationen keine Laufzeitprüfung sind, und dass du eine Strategie hast, Typen in einer bestehenden Codebase schrittweise einzuführen, statt ein großes Rewrite auszurufen, das nie ausgeliefert wird.
So baust du deine Antwort auf
- Sag, dass Annotationen statisch sind und zur Laufzeit nicht erzwungen werden.
- Zähl die konkreten Bugs auf, die ein Checker fängt.
- Beschreib schrittweise Einführung in einer Legacy-Codebase.
- Erwähn den Tooling-Nutzen jenseits von Korrektheit.
Beispielantwort
Zur Laufzeit sind sie im Grunde Kommentare, Python speichert sie und macht weiter. Der Wert entsteht, wenn ein Checker sie liest. Mypy fängt die langweiligen Bugs, die die meisten Incidents verursachen, vor allem optionale Werte, die in Code fließen, der ein echtes Objekt annimmt, und Signatur-Drift nach einem Refactoring, bei dem ein Aufrufer übersehen wurde. In einer geerbten Codebase mit rund sechzigtausend Zeilen und null Annotationen haben wir mypy mit fast allem deaktiviert eingeschaltet, es in die CI gehängt, damit die Fehlerzahl nicht wachsen kann, und dann Modul für Modul typisiert, beginnend an den Grenzen, wo Daten reinkommen. Strict Mode kam später, pro Package, über Per-Module-Overrides in pyproject. Sechs Monate später hat es eine None-Dereferenzierung in einem Bezahlpfad im Review gefangen statt um zwei Uhr nachts. Der andere Nutzen, den Leute unterschätzen, ist Editor-Support, denn mit echten Typen funktionieren Rename und Go to Definition wirklich, und das verändert, wie bereitwillig das Team überhaupt irgendetwas refactort.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Wie typisierst du eine Funktion, die unterschiedliche Typen zurückgibt?
- Was ist der Unterschied zwischen Any und object?
- Wo stößt mypy an seine Grenzen?
Weitere Fragen für Python-Entwickler
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen