Main Methode + import

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.
Antworten
Qforyouisyou
User
Beiträge: 5
Registriert: Dienstag 30. November 2021, 16:24

Hello,
beim Importieren eines Python Scripts in ein Hauptprogramm wird die, indem enthaltende Klasse automatisch ausgeführt. Dabei verwende ich eine Main Methode. Woran liegt das? Grüße

Beispielcode:

from abc import test
import sys

class main:
def eins():
print("Hallo")

if __name__ == "__main__":
main.eins()
sys.exit(main())
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Wo ist denn da eine main-Methode? Da ist eine falsche geschriebene main-Klasse, aus der auch noch eine Methode direkt aufgerufen wird.

Und nichts davon wird ausgeführt, wenn dieses Modul importierst.

Bitte zeige ein korrektes Beispiel mit den beiden beteiligten Modulen, Fehlermeldungen, Ausgaben und was du stattdessen erwartest
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Also sofern das am Compiler vorbei kommt, wird gleich die erste Zeile eine Ausnahme auslösen:

Code: Alles auswählen

In [30]: from abc import test                                                   
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-30-1c10c86b89eb> in <module>
----> 1 from abc import test

ImportError: cannot import name 'test'
Captain Obvious sagt, das liegt daran, dass es im `abc`-Modul in der Standardbibliothek nichts gibt was `test` heisst. 😇
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Qforyouisyou
User
Beiträge: 5
Registriert: Dienstag 30. November 2021, 16:24

@ __blackjack__: Es handelt sich um ein Python Script. Keine Standardbibliothek. Die Dateibezeichnung ist frei wählbar.

@ sparrow: Die Main Methode funktioniert bei der Verwendung von Funktionen und Variablen ohne Probleme.
nezzcarth
User
Beiträge: 1636
Registriert: Samstag 16. April 2011, 12:47

Qforyouisyou hat geschrieben: Samstag 22. Januar 2022, 12:40 @ __blackjack__: Es handelt sich um ein Python Script. Keine Standardbibliothek. Die Dateibezeichnung ist frei wählbar.
Die Dateibezeichnung ist theoretisch vielleicht frei wählbar, aber wenn sie gleich lautend ist mit einem Modul, das bereits Teil der mit Python mitgelieferten Standardbibliothek ist, kommt es halt zu Problemen. Und das ist bei abc der Fall. Siehe: https://docs.python.org/3/library/abc.html. abc solltest du daher nicht als Bezeichner für ein eigenes Pythonmodul (und jedes Python-Skript ist ein Python-Modul) verwenden.
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

@Qforyouisyou: Bitte lies meinen Beitrag noch einmal. Da ist keine Main-Methode in deinem Code, sondern eine falsch benannte Klasse.

Zeig doch bitte nicht irgendwelchen fragwürdigen ausgedachten Code sondern 2 Module, wobei das eine das andere importiert. Das ganze noch je Modul in Code-Tags (die automatisch erscheinen, wenn du den </>-Button im vollständigen Editor klickst). Und dann sagst du, was passiert und was du eigentlcih erwartest.
Antworten