Globale Variable in einer Klasse

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Globale Variable in einer Klasse

      @hajeku123 hat im letzten Thread ein Beispiel gegeben, was ich auch umsetzen kann, aber wie kann ich die globale Variable "self.ergebnis" in einer anderen Methode verwenden?
      Jedes mal kommen spinner.

      Python-Quellcode

      1. class getpid(Screen):
      2. .
      3. .
      4. .
      5. def __init__(self, session):
      6. self.session = session
      7. Screen.__init__(self, session)
      8. self["myLabel"] = Label("self.run")
      9. self["myActionMap"] = ActionMap(["SetupActions"],{"cancel":self.cancel})
      10. self.ergebnis = ""
      11. thread = Timer(1,self.run)
      12. thread.start()
      13. def run(self):
      14. try:
      15. url = urllib2.urlopen("http://localhost/web/getpid")
      16. get_line = url.read().decode('utf-8').rstrip().replace(",", " ")
      17. self.ergebnis = int(get_line.split()[2], 16)
      18. except:
      19. print("no")
      Alles anzeigen
      Ich möchte im Prinzip mit dem Ergebnis weiter arbeiten, aber NICHT in der Methode " run()".
    • Solange du in der class getpid bleibst einfach mit self.ergebnis ;)
      Ein kleines Dankeschön, durch eine Spende, nehme ich gerne an, PayPal oder Amazon-Gutschein an dhwz(at)gmx.net
      Falls ihr einen Real-Debrid erwerbt dann verwendet bitte meinen Partnerlink um euch auch weiterhin die Funktion des Premiumanbieters gewährleisten zu können.
      Real-Debrid: http://real-debrid.com/?id=805285
    • z.b. so

      Python-Quellcode

      1. class getpid(Screen):
      2. .
      3. .
      4. .
      5. def __init__(self, session):
      6. self.session = session
      7. Screen.__init__(self, session)
      8. self["myLabel"] = Label("self.run")
      9. self["myActionMap"] = ActionMap(["SetupActions"],{"cancel":self.cancel})
      10. self.ergebnis = ""
      11. thread = Timer(1,self.run)
      12. thread.start()
      13. thread2 = Timer(10,self.run2)
      14. thread2.start()
      15. def run(self):
      16. try:
      17. url = urllib2.urlopen("http://localhost/web/getpid")
      18. get_line = url.read().decode('utf-8').rstrip().replace(",", " ")
      19. self.ergebnis = int(get_line.split()[2], 16)
      20. except:
      21. print("no")
      22. def run2(self):
      23. try:
      24. print "self.ergebnis=" , self.ergebnis
      25. except:
      26. print("no")
      Alles anzeigen
      Rechtschreibfehler sind beabsichtigt, sie fördern ein genaueres Lesen
      Debug Log aktivieren Putty Telnet Screenshots erstellen
    • Danke. Gibt es für das Modul "threading" ein How to?
      Ich möchte mich mal damit einlesen, denn wenn ich mit "eTimer" arbeiten möchte 'verträgt' sich das nicht, also ich möchte mit "threading" einen timer bauen, der jedes mal nach einer bestimmten Zeit die Methode neu startet.
      Habe bisher im Netzt nicht zielführend gefunden.
      Oder soll ich es lieber mit "twisted.internet" realisieren?
    • Ich habe es jetzt gelöst bekommen, und zwar so, hoffe das ist technisch ok.

      Python-Quellcode

      1. class getpid(Screen):
      2. .
      3. .
      4. .
      5. def __init__(self, session):
      6. self.session = session
      7. Screen.__init__(self, session)
      8. self["myLabel"] = Label("self.run")
      9. self["myActionMap"] = ActionMap(["SetupActions"],{"cancel":self.cancel})
      10. self.ergebnis = ""
      11. self.mytimer = eTimer()
      12. thread = Timer(1,self.run)
      13. thread.start()
      14. self.mytimer.callback.append(self.run2)
      15. self.run2()
      16. def run(self):
      17. try:
      18. url = urllib2.urlopen("http://localhost/web/getpid")
      19. get_line = url.read().decode('utf-8').rstrip().replace(",", " ")
      20. self.ergebnis = int(get_line.split()[2], 16)
      21. except:
      22. print("no")
      23. def run2(self):
      24. thread2 = Timer(1,self.run)
      25. thread2.start()
      26. print("timer aktiv")
      27. self.mytimer.start(1000, True)
      Alles anzeigen