Klassen-Instanz mit Hilfe von Variable erstellen

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
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@fpmr: ist das jetzt ein Name oder ein Dateiname? Irgendwie sind sich da Kommentar und Attributname nicht einig. Ein Default-Wert eines Funktionsarguments, das einen Fehler produziert, macht keinen Sinn. Wenn das Argument zwingend ist, darf es keinen Default-Wert haben. Der attributespath ist auch kein Pfad sondern ein Dateiname. Dateien mit with zu öffnen, wurde Dir schon gesagt. Es ist unüblich in Python, Zeilen mit readline zu lesen, da eine for-Schleife einfacher, vielseitiger und verständlicher ist. Die Klammern bei if sind immer noch überflüssig. Statt replace nimmt man üblicherweise rstrip. Du wolltest ursprünglich alles in eine Liste packen und zurückgeben:

Code: Alles auswählen

def fetch_data(attributes_filename):
    with open(attributes_filename) as attributes:
        return [Slide(*map(str.rstrip, slide)) for slide in zip(*[attributes] * 4)]
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

fpmr hat geschrieben:Ich glaube ich habe den Zweck von Klassen noch nicht ganz geschnallt, ich dachte ich könnte mit davon erstellten Instanzen direkt arbeiten.....
Um Daten zu transportieren (übergeben) muss man diese nicht unbedingt in eine Klasse stecken. In Deinem Fall eignet sich eine Klasse aber zum Beispiel, um das zu realisieren, was BlackJack schon angesprochen hat:

Code: Alles auswählen

class Slide(object):
    def __init__(self, filename, start, stop):
        self.filename = filename
        self.start = start
        self.stop = stop
        self._duration = None

    @property
    def duration(self):
        return self.stop - self.start

Code: Alles auswählen

>>> s = Slide('my_file', 12, 13)
>>> s.duration
1
Und am Beispiel von Sirius3 siehst Du auch, dass Du vielleicht die Form, wie Du Deine Daten vorliegen hast, überdenken solltest... ;-)

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Antworten