Ich habe mir mal die Codebeispiele zum Buch angeschaut — da sind wie üblich ein paar gruselige Sachen dabei. Würde ich nicht uneingeschränkt empfehlen.
Es wird sich bei der Namensgebung nicht durchgehend an klein_mit_unterstrichen gehalten, es gibt hier und da dann auchMalMixedCase-Namen. Und so Namenszusätze wie `mein_*` oder `meine_*` werden auch nicht wirklich dadurch besser, dass sie Deutsch sind.
Doppelte führende Unterstriche. Die Datei dazu heisst ``PublicPrivate.py``.
Property wird am Anfang nicht als Dekorator verwendet, sondern wie gaaanz früher mit Methoden aufgerufen, die zudem dann auch noch öffentlich sind.
Komische Typtests die zu komischen Ergebnissen führen, zum Beispiel das die Methode `vedoppeln()` `None` zurück gibt, falls das Argument kein `int` oder `float` ist (mit `type()` getestet, also nicht mal abgeleitete Typen können verdoppelt werden). Oder das eine Zuweisung an ein Property nur mit von `list` und `tuple` abgeleiteten Typen funktioniert und sonst einfach ignoriert wird.
Die Vererbungsbeispiele sind kaputt, weil da wieder ein unnötiger und einschränkender Typtest drin ist, der dafür sorgt, das ein Attribut am Ende undefiniert ist was dann zwangsläufig zu einem Folgefehler führt. Und statt da in der abgeleiteten Klasse die `__init__()` von der Basisklasse aufzurufen, steht der nötige Code um das Exemplar zu initialisieren noch mal in der abgeleiteten Klasse.
Das Beispiel für eine Textdatei öffnet die ohne Kodierungsangabe — Und schreibt dann Text rein der nicht nur aus ASCII-Zeichen besteht.
Texte ohne Zeilenenden werden mit "\n".join(…) zusammengefügt und in eine Datei geschrieben — womit die letzte Zeile dann nicht sauber mit einem Zeilenende abgeschlossen ist.
Bei den Beispielen für Dateien und Ordner wird nicht `pathlib` verwendet (das Buch ist von 2021) und zeigt wie man sich mit `os.chdir()` durch Verzeichnisse bewegt. Yeah.
Das Tk-Beispiel für mehrere Fenster erzeugt mehrere `Tk`-Objekte.
Bei den Datenbankbeispielen ist die Bennennung Einzahl/Mehrzahl bei den Tabellen inkonsistent. Es wird ein TEXT-Feld als Primär- und Fremdschlüssel verwendet, wobei das der Name eines Virus ist. Das heisst man kann Virennamen nicht mehr einfach ändern.
CSV-Datei wird auch ohne Kodierungsangabe geöffnet und mit ``newline='\n'`` wo die Dokumentation ausdrücklich sagt, dass dort die leere Zeichenkette gesetzt werden muss.
Ach so: Nackte ``except:`` gibt's natürlich auch.