Python: Warum wird ein veränderlicher Standardwert zwischen Aufrufen geteilt?

Eine Funktion mit def f(x, in_liste=[]) bekommt nicht bei jedem Aufruf eine frische Liste. Sie bekommt jedes Mal dieselbe, für die gesamte Laufzeit des Programms. Hier der Grund — und was man stattdessen tut.

Python: Wie hängt man zwei Listen aneinander?

Es gibt fünf vernünftige Arten, zwei Listen zu verbinden. Sie unterscheiden sich darin, ob du eine neue Liste bekommst oder eine bestehende veränderst — und dieser Unterschied ist für anderen Code sichtbar, der dieselbe Liste hält.

Python: Wie kopiert man eine Datei?

shutil bietet dafür vier Funktionen, und sie unterscheiden sich darin, was sie mitnehmen. Seit Python 3.14 gibt es zusätzlich eine Methode in pathlib — die ist neuer als jede Antwort, die man dazu findet.

Python: Gibt es einen ternären Operator?

Ja, und die Schreibweise sieht anders aus als in jeder anderen Sprache, die so etwas hat. Dazu zwei ältere Behelfslösungen, die man immer noch findet und die sich anders verhalten, als man denkt.

Python: Was ist der Unterschied zwischen __str__ und __repr__?

Beide machen aus einem Objekt einen String. __str__ ist für Menschen, __repr__ ist für dich, wenn etwas schiefgegangen ist — und wenn du nur eine von beiden definierst, dann __repr__.

Python: Was ist der Unterschied zwischen @staticmethod und @classmethod?

Der mechanische Unterschied ist eine Zeile: Eine classmethod bekommt die Klasse, eine staticmethod bekommt nichts. Warum das wichtig ist, sieht man erst, wenn jemand von deiner Klasse ableitet — und dort verbringt dieser Artikel seine Zeit.

Python: Was macht das Schlüsselwort yield?

Eine Funktion die yield enthält verhält sich völlig anders als eine normale Funktion. Sie gibt keinen Wert zurück, und ihr Rumpf läuft zunächst überhaupt nicht.

Python: Was macht if __name__ == "__main__":?

Diese beiden Zeilen findet man am Ende sehr vieler Python-Dateien. Was sie tun, wozu sie gut sind — und eine Folge davon, die man kaum findet, wenn man sie nicht schon einmal erlebt hat.

Python: Was sind Metaklassen?

Eine Metaklasse ist die Klasse einer Klasse. Der Satz stimmt und hilft alleine kein bisschen weiter. Deshalb hier der Weg dorthin, wann welcher Hook tatsächlich läuft — und warum du vermutlich etwas Einfacheres willst.

Python: Wie aktualisiert man alle Pakete mit pip?

pip hat keinen Befehl upgrade-all. Also kopiert jeder irgendwoher einen Shell-Einzeiler. Hier die bessere Variante — und der Nachweis für den Schaden, den die Einzeiler hinterlassen können.