exit klasse funzt nich

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
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

hi. ich lerne grad OOP und versuche einfache sachen (z.b. print anweisung, Tk-Fenster, Tk-Fesnter mit button) als klassen zu schreiben.
jetzt hab ich es mal mit sys.exit() versucht:

Code: Alles auswählen

from sys import exit

class Ende(exit):
    def __init__(self, exit):
        exit(0)

e = Ende(exit)

e.__init__(exit)
jedoch kommt immer dieser fehler, und ich weiß nicht was damit gemeint ist:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Server\python\Lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
    exec codeObject in __main__.__dict__
  File "D:\Dokumente und Einstellungen\Florian Löber\Desktop\exit.py", line 8, in ?
    class ende(exit):
TypeError: cannot create 'builtin_function_or_method' instances
könnt ihr mir weiterhelfen? was hab ich falsch gemahct?
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Eigentlich so alles, was man erwischen kann :wink: . Am besten du suchst dir mal ein Tutorial hier aus dem Forum, das Thema gabs schon oft. Ich will man versuchen, dir kurz deine Fehler zu zeigen:

Code: Alles auswählen

from sys import exit 

class Ende(exit): # man kann von keiner Funktion Ableiten/Vererben. Das geht nur von Klassen
    def __init__(self, exit): #hier übergibst du die exit funktion. ist ok, aber ohne ginge es auch, da exit global ist
        exit(0) 

e = Ende(exit) #Klasse wird instanziert und damit die __init__ gerufen. 

e.__init__(exit)# erübrigt sich...
Im Endeffekt wäre deine Klasse funktionstüchtig, wenn du schreiben würdest class Ende:.

Milan
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

hehe,...volltreffer :D

so funzt es:

Code: Alles auswählen

from sys import exit

class Ende:
      def __init__(self):
          exit(0)

e = Ende()
danke
Antworten