@Malta: Zum Passwortgenerator:
Sternchenimporte sollte man nicht machen -- damit importiert man alle Namen aus einem Modul. Wenn man das überall machen würde, dann hätte das Modul ja auch schon alle Namen aus anderen Modulen importiert, und damit geht der Sinn ein Programm auf Module aufzuteilen irgend wie verloren.
`print_value()` ist ein ziemlich generischer Name. `generate_password()` wäre vielleicht besser.
Wenn man Namen durchnummeriert, ist das oft ein Zeichen, dass man eigentlich eine Datenstruktur verwenden möchte. Hier zum Beispiel Listen. Dann kann man einiges von dem Code auch mit Schleifen kürzer schreiben.
`range()` erzeugt eine Liste mit Zahlen -- wenn man nur eine bestimmte Anzahl von Schleifendurchläufen benötigt, oder allgemein eben nicht wirklich eine Liste mit Zahlen, dann ist `xrange()` geeigneter.
Zeichenketten sollte man nicht durch wiederholtes "aufaddieren" erzeugen. Die Datenmenge ist hier zwar noch sehr gering, aber das kann ein sehr schlechtes Laufzeitverhalten haben, weil jedes mal eine neue Zeichenkette aus den beiden Operanden erzeugt wird. Idiomatischer ist das erstellen einer Liste, die dann mit `str.join()` zusammengefügt wird.
Du bist sehr inkonsistent bei der Namensvergabe was die Schreibweise angeht. Mal `kleinbuchstaben_mit_unterstrichen`, mal `mixedCase` und sogar GROSSBUCHSTABEN für Attribute die eigentlich nicht als Konstanten durchgehen. Da könntest Du Dich mal an den Style Guide (PEP8) halten.
Doppelte führende Unterstriche sind dazu gedacht Namenskollisionen bei der Vererbung zu vermeiden. Die Gefahr dürfte bei `__scrollHandler()` nicht wirklich bestehen. Das ``*L``-Argument sieht mir auch ein wenig so aus als wenn Du das mal ausprobieren wolltest, und nicht, dass diese "Magie" da tatsächlich benötigt wird. Das macht das Programm einfach nur schwerer lesbar.
Dictionaries bei `Tkinter`-Methoden zu übergeben ist mehr als veraltet. Ich habe so etwas noch nie in Programmen gesehen, nur ab und zu bei Anfängern die Code-Beispiele aus den Anfangszeiten von Python im Netz gefunden haben. Ausserdem mischst Du munter Zeichenkettenliterale mit Konstanten aus `Tkinter` -- teilweise für die selben Werte.
Was man nicht in anderen Methoden benötigt, sollte man auch nicht an das Objekt binden.
Eine Widget-Klasse sollte sich nicht selbst in einem Container "layouten". Das macht keine der bereits vorhandenen Klassen. Man nimmt sich so die Möglichkeit das Widget flexibel wieder zu verwenden und in eine grössere GUI einzubauen.
Dass man den Passwortgenerator mit ``python Wörterzählen.pyw`` startet, glaube ich nicht.
