Ich habe gerade begonnen, Klassen in Python zu lernen, und ich habe ein Problem mit ihnen.Wie Iterationen einer Liste in einer Klasse zurückgegeben werden
Ich habe TXT-Datei mit den folgenden Zeilen:
3 37.5 200
6 36.9 200
9 36.6 100
12 36.6 0
Wenn ich den Code ausführen, druckt er nur die erste Zeile. Ich möchte jedoch alle Zeilen abrufen. Ich weiß, dass Sie print()
verwenden können, aber ist es möglich, zurückzukehren?
class Meds:
def __init__(self, file):
self.file = file
def meds(self):
for i in source.readlines():
data_split = i.strip().split(' ')
hour = data_split[0]
temp = data_split[1]
dose = data_split[2]
return 'At {0}:00 - he had {1} temp, and took {2} mg of meds'.format(hour, temp, dose)
if __name__ == '__main__':
source = open('meds.txt', 'r', encoding='utf8')
a = Meds(source)
print(a.meds())
source.close()
Ich würde wirklich auf dieser Hilfe dankbar und würde unglaublich freuen, wenn Sie gut zur Verfügung stellen können, klar Quellen Klassen in Python zu erklären.
Dies ist nach wie vor nur eine Saite zurückkehren würde. Die Schleife wird niemals über die erste Iteration hinausgehen. – Kevin
Ich habe den ersten Beispielcode geändert, um 'yield' zu verwenden und den Verwendungscode für den Generator hinzuzufügen, wo sie ihn aufrufen. Danke, dass du es aufgezeigt hast. – Thelmund
Cool, sieht jetzt gut aus :-) – Kevin