@WaltherDasSchaf: Noch ergänzend zu den Anmerkungen: `width` würde ich als Zahl angeben. Letztendlich geht das an Tcl/Tk was im Grunde nur Zeichenketten kann („stringly typed“
) aber es ist ja auch implizit Dokumentation für den Leser, das die Breite etwas ist mit dem man rechnen oder das man berechnen könnte.
Grunddatentypen haben in Namen nichts zu suchen. Den Typ ändert man öfter mal während der Programmentwicklung und dann hat man entweder falsche, irreführende Namen oder muss durch das Programm gehen und alle betroffenen Namen anpassen.
Da kommen wir dann auch gleich zu einem meiner Hauptgründe keine deutschsprachigen Bezeichner zu verwenden: Die Mehrzahl von einem Wort ist viel zu oft identisch mit der Einzahl, und dann bekommt man Probleme für eine Datenstruktur wie eine Liste und ein einzelnes Element daraus Namen zu finden, weil die Liste mit Fenstern `fenster` heissen müsste, und ein einzelnes Element daraus dann auch `fenster` was nicht geht oder zumindest sehr verwirrend ist. Im Englischen hat man dieses Problem nur sehr selten. Hier wäre es dann `windows` für die Liste und `window` für ein einzelnes Fenster.
Wenn es im `tkinter`-Modul eine Konstante für eine Zeichenkettenwert mit einer besonderen Bedeutung gibt, würde ich diese Konstante benutzen. Also hier ``tk.LEFT`` statt ``"left"``. Wenn man sich verschreibt, bekommt man einen `NameError`, den die IDE oder ein entsprechendes Editorplugin schon anzeigen kann.
Code: Alles auswählen
#!/usr/bin/env python3
import tkinter as tk
from functools import partial
def show_windows(windows):
for window in windows:
window.wm_deiconify()
def main():
root = tk.Tk()
windows = []
for i in range(2):
window = tk.Toplevel()
window.title(f"fenster{i + 1}")
window.withdraw()
windows.append(window)
tk.Button(root, width=5, command=partial(show_windows, windows)).pack(
side=tk.LEFT
)
root.mainloop()
if __name__ == "__main__":
main()