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())
Main Methode + import
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
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
- __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:
Captain Obvious sagt, das liegt daran, dass es im `abc`-Modul in der Standardbibliothek nichts gibt was `test` heisst.
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'
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- 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.
@ sparrow: Die Main Methode funktioniert bei der Verwendung von Funktionen und Variablen ohne Probleme.
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.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.
@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.
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.