from tkinter import *

Fragen zu Tkinter.
Antworten
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Ich habe eine Frage: Wieso ist

Code: Alles auswählen

from tkinter import *
schlecht und wie kann man das verbessern?
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@timm4444,

weil dann alle Namen die im Modul tkinter definiert sind, auch im aktuellen Modul definiert sind.

Man kann dann nicht so einfach nachvollziehen von welchem Modul diese Namen kommen,
welche Namen eigentlich importiert wurden und
ob dadruch vielleicht schon existierende Namen überschrieben wurden.

Zum Beispiel:
Im aktuellen Modul machst du:

Code: Alles auswählen

def cool_func():
    print("Cool!")
Jetzt machst du:

Code: Alles auswählen

from other_module import *
und in dem anderen Modul gibt es die Funktion auch:

Code: Alles auswählen

def cool_func():
    print("Not so Cool at all!")
Da wirst du dich vielleicht wundern, warum sich deine Funktion auf einmal anders verhält.

Daher sollte man zum Beispiel folgendes machen:

Code: Alles auswählen

import tkinter as tk

app = tk.Tk()
Dadurch sind alle Objekte aus dem tkinter Modul über tk. ansprechbar
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Danke für die gute Erklärung mit bsb. Ich sehe gerade, dass das PyCharm auch so geändert hat.
Antworten