P
prepair.app
Interview starten →
EnglishУкраїнськаРусскийDeutsch
🐍

Middle Python BackendPython-Backend-Interviewfragen

Middle · 2–4 Jahre Erfahrung

Python-Backend-Interviews decken die Interna der Sprache, asynchrone Programmierung, Django oder FastAPI und den Umgang mit Datenbanken ab. Die folgenden Fragen kommen am häufigsten vor, jeweils mit einer Musterantwort. Middle: tieferes Verständnis, Optimierung und reale Arbeitssituationen.

Probier es aus — kein Konto nötig
Deine Frage wird vorbereitet…

Themen zur Vorbereitung

Datentypen und Strukturen
Decorators und Generatoren
GIL und Nebenläufigkeit
asyncio und async/await
Django / FastAPI
ORM und SQL-Optimierung

7 Fragen auf Middle-Niveau mit Antworten

1

Was verhindert der GIL tatsächlich, und wann helfen Threads trotzdem?

Antwort

Der Global Interpreter Lock erlaubt immer nur einem Thread, Python-Bytecode auszuführen, weshalb reiner Python-Code nie parallel über Cores läuft. Threads helfen überall dort, wo die Arbeit aus Warten statt aus Rechnen besteht — Netzwerkaufrufe, Festplatte, Datenbank —, weil der Lock während blockierendem I/O freigegeben wird. Für CPU-lastige Arbeit braucht man Prozesse, eine C-Extension, die den GIL fallen lässt, oder man verlagert den heißen Teil aus Python heraus.

2

Was macht await tatsächlich, und wann ist async sinnlos?

Antwort

await gibt die Kontrolle an den Event Loop zurück, damit dieser etwas anderes erledigen kann, bis die erwartete Operation abgeschlossen ist; dabei entsteht kein Thread, und nichts läuft parallel. Async ist sinnlos, wenn die Arbeit CPU-lastig ist, weil eine lange Berechnung den Loop blockiert und mit ihm jeden anderen Task. Sinnlos ist es auch, wenn irgendeine Bibliothek im Pfad synchron ist — ein einziger blockierender Datenbanktreiber legt den gesamten Loop lahm.

3

Schreib einen Decorator. Warum braucht er functools.wraps?

Antwort

Ein Decorator ist eine Funktion, die eine Funktion entgegennimmt und eine Ersatzfunktion zurückgibt, meist eine Closure, die das Original aufruft. Ohne functools.wraps trägt die Ersatzfunktion ihren eigenen Namen und Docstring, sodass die dekorierte Funktion sich selbst als 'wrapper' meldet — das bricht Introspection, help() und jedes Framework, das anhand des Funktionsnamens routet. wraps kopiert die Metadaten mit rüber.

4

Du hast ein N+1-Problem im ORM. Wie findest und behebst du es?

Antwort

Man findet es im Query-Log oder in der Debug-Toolbar, wo eine Query pro Zeile einer Liste auftaucht. Die Ursache ist Lazy Loading innerhalb einer Schleife. select_related löst es für vorwärtsgerichtete Foreign Keys mit einem Join, prefetch_related für Reverse- und Many-to-Many-Beziehungen mit einer zweiten Query und einem In-Memory-Match. Die Falle ist, das Symptom durch Caching des Ergebnisses zu beheben statt die Query selbst zu fixen.

5

Wann würdest du einen Generator statt einer Liste zurückgeben?

Antwort

Wenn der Aufrufer nur einmal iteriert und die Daten nicht in den Speicher passen müssen — etwa beim Lesen einer großen Datei, beim Streamen von Query-Ergebnissen oder in einer Pipeline von Transformationen. Der Preis ist, dass ein Generator verbraucht wird: Man kann seine Länge nicht abfragen, nicht indizieren und nicht zweimal iterieren, ohne ihn zu materialisieren. Einen aus einer öffentlichen API zurückzugeben überrascht Aufrufer, die eine Sequenz erwarten, also sollte das eine dokumentierte Entscheidung sein.

6

Was garantiert ein Context Manager?

Antwort

Dass __exit__ läuft, egal ob der Block normal endet oder eine Exception wirft — deshalb gehören Dateihandles, Locks und Transaktionen in einen. Mit contextlib.contextmanager geschrieben ist der Code vor yield das Setup und danach das Teardown — aber nur, wenn das Teardown in einem finally steckt, sonst überspringt eine Exception es. Die Garantie betrifft das Aufräumen, nicht das Unterdrücken des Fehlers.

7

Was mockst du in einem Test, und was nicht?

Antwort

Man mockt, was man nicht besitzt und nicht kontrolliert: Drittanbieter-APIs, die Uhrzeit, Zufall, den Mailversand. Man mockt nicht die eigene Domänenlogik, sonst prüft der Test nur, dass sich der Mock so verhält, wie man ihn geschrieben hat. Auch die Datenbank zu mocken ist meist ein Fehler — eine nach jedem Test zurückgerollte Transaktion liefert für wenig Aufwand echtes Verhalten, und ORM-Bugs sind genau die, die Mocks verstecken.

🦎

Antworten lesen reicht nicht

Im echten Interview sprichst du unter Druck. Cam stellt genau diese Fragen, bewertet jede Antwort und zeigt dir genau, was du verbessern musst.

Middle Python Backend-Interview üben →
Kostenlos · 3 Interviews im Monat

Weitere Level — Python Backend

Junior Python BackendSenior Python BackendAlle Python Backend-Fragen

Weitere Spezialisierungen

🔍Middle QA Manual🤖Middle QA AutomationMiddle Java Backend🐘Middle PHP-Backend🦫Middle Go-Backend🟢Middle Node.js-Backend💎Middle Ruby on Rails🔷Middle C++🟨Middle JavaScript⚛️Middle React Frontend