Mehrere Instanzen von gleichartigen Daten Objekten erzeugen

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
Vash
User
Beiträge: 5
Registriert: Mittwoch 30. Mai 2018, 18:50

Hallo,

bin selber noch Python Neuling und darf mich im Zuge meiner Abschlussarbeit damit beschäftigen. Mein Problem ist nichts Besonderes glaub ich ich steh nur grade auf dem Schlauch.

Ich habe Messdaten von unterschiedlichen Daten aber mit gleicher Struktur. Die Messungen sind jeweils in Unterordnern mit Name/Datum der Messung. Ich habe schon ein Skript erstellt mit dem ich die Daten der Reihe nach aus allen Messungen aus dem csv File auslese und in mein Daten Objekt reinschreibe. Anschließend werden die Daten weiterverarbeitet und hier kommt mein Problem.

Bei den eingelesenen Messdaten stört mich nicht wenn sie beim nächsten Schleifenschritt überschrieben werden aber die manipulierten Daten würde ich gerne für jede Messung separat speichern auf Basis meiner Klasse.
Ich habe auch schon eine Klasse definiert die die manipulierten Daten aufnimmt. Nur weiß ich nicht wie ich für jede Messung eine separate Instanz erstelle, damit ich nachdem ich alle Messungen durchlaufen habe Zugriff auf die weiterverarbeiteten Daten von allen Messungen habe.

Unten ist ein keiner Beispiel wie ich die Klasse aufgebaut habe die data Klasse wird bei jeden Schleifendurchgang überschrieben aber wie krieg ich es hin das ich bei jedem Schleifendurchgang eine separate Instanz der data_analysis Klasse erzeuge.

Code: Alles auswählen

class data:
   def __init__(self, name): 
      self.name = name
      self.date = []
      self.time = []
      
      self.height = []
      self.width = []
           
      self.analysis = data_analysis()
      
class data_analysis:
   def __init__(self, name): 
      self.name = name
      self.mean = 0
      self.staw = 0           



Viele Grüße
Sirius3
User
Beiträge: 18266
Registriert: Sonntag 21. Oktober 2012, 17:20

Irgendwie ist die Antwort offensichtlich. Wenn Du in jedem Schleifendurchgang eine Instanz erzeugen willst, dann tu das doch einfach. Da Du keine Schleife gezeigt hast, kann man aber auch nicht sagen, was Du vielleicht falsch machst.
Benutzeravatar
ThomasL
User
Beiträge: 1378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Du erzeugst in deiner Klasse Data (Klassennamen sollten der CamelCase Konvention folgen) eine Instanz deiner Klasse DataAnalysis.
Dein Konstruktor erwartet da aber einen Parameter name, der nicht übergeben wird.
Eine Instanz deiner Klasse Data erzeugst du ähnlich.
Wenn du jetzt mehrere Instanzen speichern möchtest, erzeugst du z.B. eine Liste von Instanzen.

Code: Alles auswählen

class DataAnalysis:
   def __init__(self, name): 
      self.name = name

class Data:
   def __init__(self, name): 
      self.name = name           
      self.analysis = DataAnalysis(name)
       
data = Data('Name')

Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Vash
User
Beiträge: 5
Registriert: Mittwoch 30. Mai 2018, 18:50

Ja danke für die Antworten kann geschlossen werden. War wirklich ziemlich selbst erklärend.
Antworten