Stilfrage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!

Also ich muss zugeben, dass ich bei Tkinter meistens auch * importiere. Bis auf Image (das ich noch nie benutzt habe) glaube ich nicht, dass es da wirklich zu Nameskonflikten kommt.
BTW: reichts bei Mr_Snede's Problem nicht einfach, wenn man

Code: Alles auswählen

from Tkinter import *
import Image
schreibt?

Gruß, mawe
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Denke schon. Nur was, wenn du Tkinter.Image brauchst?
wieso nicht ein

Code: Alles auswählen

import Tkinter as tk
# oder
import Tkinter as t
Das löst duch dir Probleme elegant und man muss uch nicht so drastisch viel mehr schreiben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

@ mawe
habe deinen Vorschlag erfolgreich getestet - danke.(nachdem ich geschnallt habe, daß es um die Reihenfolge gieng.)

Ich denke ich werde dem Vorschlag von Leonidas folgen und die Importanweisung für Tkinter mit "as" versehen.
Diese Idee habe ich schon gestern abend in einem alten Thread gefunden und mir direkt notiert.

Dabei habe ich auch festgestellt, dass nicht nur hier im Forum sondern auch in nahezu allen anderen Beispielen Tkinter mit:

Code: Alles auswählen

from Tkinter import *
importiert wird.

Wenn ich schon bei meinem doch recht einfachen Programm auf Überschneidungen in den Namensbereichen komme - warum haben alle anderen nicht dieses Problem?

Aber ich bin glücklich, denn ob der Fehlermeldung habe ich zumindest in die richtige Richtung gedacht.

cu Sebastian
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mr_Snede hat geschrieben:Wenn ich schon bei meinem doch recht einfachen Programm auf Überschneidungen in den Namensbereichen komme - warum haben alle anderen nicht dieses Problem?
Haben sie auch, wissen es nur noch nicht.
Und dann wundern sie sich, warum es irgendwann irgendetwas nicht geht. Aber wie wir beide festgestellt haben, tun tie meisten Tkinter'ler * imports nehmen, weil das etwas bequemer zu tippen ist.

Es gibt auch einige, die wissen sowas und wissen auch wie man es umgehen kann, gell mawe? 8)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!
Mr_Snede hat geschrieben: Wenn ich schon bei meinem doch recht einfachen Programm auf Überschneidungen in den Namensbereichen komme - warum haben alle anderen nicht dieses Problem?
Der Grund ist wahrscheinlich, dass bei Tkinter die Gefahr von Überschneidungen eigentlich sehr gering ist. Es gibt nicht viele Module die Buttons, Labels, usw. haben. Und wenn doch (andere GUIs), dann verwendet man sie eh nicht zusammen mit Tkinter :wink:. Das mit Image ist eigentlich die einzige Überschneidung die mir bis jetzt (und auch erst seit jetzt) bekannt ist.
Leonidas hat geschrieben: Es gibt auch einige, die wissen sowas und wissen auch wie man es umgehen kann, gell mawe?
Ich werte das mal als Kompliment :) Aber wie ich oben schon geschrieben habe, die Gefahren dabei sind nicht wirklich groß (vor allem wenn man den Tkinter-Import immer als erstes schreibt :wink:)
BTW: Kennst Du (oder sonst jemand) noch Überschneidungen ausser Image?

Gruß, mawe
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mawe hat geschrieben:Ich werte das mal als Kompliment :) Aber wie ich oben schon geschrieben habe, die Gefahren dabei sind nicht wirklich groß (vor allem wenn man den Tkinter-Import immer als erstes schreibt :wink:)
BTW: Kennst Du (oder sonst jemand) noch Überschneidungen ausser Image?
Kannst du ruhig als Kompliment werten, nach den lustigen Tk Programmen die du schreibst hast du es verdient :)
Also so Überschneidungen kommen mir aktuell nicht in den Sinn, aber bei 190 Elementen im Namespace..

Also ich finde, wenn man keine * imports nutzt, hat man auch mehr Ordnung im Programm, so ist Tkinter dort wo man es vermutet, im Tkinter Namespace. Damit kann man dann auch dir() ausführen, ohne lange zu überlegen, was jetzt zu Tk gehört, was zu anderen Libs.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Ich hatte mal wieder etwas Zeit zu basteln und:
... bin stolzer Vater einer kleinen GUI Aplikation geworden!!

Mir ist der Code mittlerweile zu lang um ihn hier zu Posten also habe ich ihn hierhin ausgelagert.

Ich glaube man kann schon erkennen, wo es hingehen soll, auch wenn's noch wie eine Baustelle aussieht :-))

Wenn ich wieder etwas Zeit habe werde ich die Fragen die ich habe in den entsprechenden Unterforen stellen.

cu Sebastian
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Leonidas hat geschrieben:Also ich finde, wenn man keine * imports nutzt, hat man auch mehr Ordnung im Programm
Jep, das versuche ich auch immer zu vermeiden... Zwar muß man dann immer mehr schreiben, aber dafür weiß man wo was herkommt... Gerade bei fremden Code ist das sehr hilfreich!
Antworten