Seite 1 von 1

Es wird alles ausgeführt!!

Verfasst: Sonntag 30. März 2025, 16:32
von forumseeker
Hallo!

ich habe eine Test-Datei gemacht und will von einer anderen py-Datei nur einen Wert auslesen. Es wird aber die komplette Python-Datei ausgeführt.

Hier ist mein Code:

Code: Alles auswählen

import compare_ALT

test = compare_ALT.orders
print(test)
Ws mache ich falsch?

Gruss,
Andreas

Re: Es wird alles ausgeführt!!

Verfasst: Sonntag 30. März 2025, 16:59
von sparrow
Namen werden in Pyhton klein_mit_unterstrich geschrieben. Ausnahmen sind die Namen von Klassen (_nicht_ deren Instanzen): PascalCase und Konstanten: (KOMPLETT_GROSS).

Abkürzungen sind schlecht. Dein Modul sollte eher compare_alternative oder compare_alternative heißen.

Ansonsten kann man nur mutmaßen, was dein Problem ist, denn aus deiner Frage geht es nicht hervor. Was ist denn "die komplette Python-Datei"? Ich schaue mal in meine Glaskugel und vermute: du wunderst dich, dass Nebeneffekte auftreten, weil du compare_ALT (besser: compare_alternatives) importierst?
Das liegt daran, dass nur folgende Dinge auf Modulebene (also ohne Einrückgung) stehen dürfen: die shebang-Zeile, Importe, die Definition von Konstanten (die sich dadurch auszeichnen, dass sie wirklich konstant sind und sich der Wert niemals zur Laufzeit ändert), die Definition von Klassen und Funktionen und die Weiche die deine main-Funktion aufruft.
Ich rate: Hast du nicht gemacht und wunderst dich nun, dass alles, was nicht eingerückt ist, bei einem Import ausgeführt wird.

Re: Es wird alles ausgeführt!!

Verfasst: Sonntag 30. März 2025, 19:03
von einfachTobi
Verhindern kannst du das, indem du die o. g. Dinge in eine Funktion packst. Üblicherweise nennt man diesen "Einstiegspunkt" main:

Code: Alles auswählen

BAR = 23
FOO = "dies das"

def main():
    print("Hello World!")

if __name__ == "__main__":
    main()
Wenn du dieses Modul nun importierst wird nichts ausgegeben und du kannst auf die Konstanten/Funktion etc. zugreifen

Re: Es wird alles ausgeführt!!

Verfasst: Montag 31. März 2025, 07:24
von forumseeker
danke!!