Nein, brauchst du _nicht_. Du hast lediglich einen konzeptionellen Denkfehler. Wenn die gelesene Liste leer ist, dann überschreibst du die bestehende Liste halt _nicht_. Dann sparst du dir auch die Krücke via old_list oder was auch immer.
Und wenn die Liste leer ist, dann rufst du halt _nicht_ update_text auf.
Du solltest hier nochmal die Aufteilung von deinem Code überdenken und das ggf. auf mehr Funktionen aufteilen.
tatsächlich. Da habe ich einen Denkfehler gehabt und zu sehr meinen altes Codekonstrukt im Kopf gehabt. Danke! sparrt mir einiges an codezeilen :)
deine Kritik zu Zeile 3 und 15 hat sich damit auch erledigt, weil ich das alles nicht mehr brauche.
Zeile 4 ist schräg - `__init__` ohne Klasse?
ich besitze davor eine Klasse.
Die Frage ist auch, warum du die Liste nicht direkt leer anlegst. Weil: im gezeigten Code wir die Default Liste nie benutzt, sondern wenn nur geleert.
ich hatte die Struktur so gewählt, weil wenn er gleich am Anfang in den Error läuft, noch keine back_up liste hatte.
Ansonsten ignorierst du scheinbar geflissentlich, was ich dir zu Variablennamen geschrieben habe. Wenn du früher oder später scheinbar nicht nachvollziehbare Fehler bekommst, denk' einfach nochmal an das, was ich dir in Post #3 geschrieben habe.
ich ignoriere es nicht. Den Hinweis habe ich dankend angenommen und kümmere mich am Ende (also jetzt) drum :)
class myScreen(Screen):
variable1 = StringProperty()
variable2 = StringProperty()
def __init__(self, **kwargs):
super(FirstScreen, self).__init__(**kwargs)
Clock.schedule_interval(self._read_txt, 1)
def _update_text(self, data):
self.variable1 = data[0]
self.variable2 = data[2]
return data
def _read_txt(self):
with open("/home/pi/test.txt", "r") as f:
calendar_data = f.read().splitlines()
if len(calendar_data)==9:
self._update_text(calendar_data)
Display More
hier mein code