importieren von Objects in "list"
Verfasst: Donnerstag 30. April 2015, 09:29
Hallo zusammen,
ich bin seit vorgestern dabei mir die Sprache Python anzueignen, daher bitte ich um Verständnis falls der ein oder andere Ausdruck noch nicht dem "Regelwerk" entspricht...
Info:
Ich sitze an der Aufgabe ein kleines "Auftragsprogramm" zu schreiben.
Dies soll die einen Auftrag erfassen, inkl. Sachbearbeiter und Kunde. Es gibt nur einen Auftrag/Sachbearbeiter/Kunde.
Jedoch kann ein Auftrag mehrere Posten haben.(ein Posten besteht aus der variablen: "menge und produkt". Wobei "produkt" ein andere Klasse ist. Die Klasse Produkt enthält. "preis und name" des Produktes.)
Die erste Version des Programmes entheilt statische variablen für posten. Mein Constructor für die Klasse Auftrag sah in dem Fall so aus:
def __init__(self, sachbearbeiter, kunde, posten1=None, posten2=None):
'''
Constructor
'''
self.__posten1 = posten
self.__posten2= posten
self.__sachbearbeiter = sachbearbeiter
self.__kunde = kunde
Jetzt hatte ich das Problem das ich die Preise usw. nicht berechnen konnte wenn ein Posten fehlte. Außerdem war das Programm zu statisch, was wenn man mehr als 2 Posten erfassen möchte.
Darum dachte ich mir das ich eine Liste erstelle..
der neue Konstruktor sieht wie folgt aus:
def __init__(self, sachbearbeiter, kunde):
'''
Constructor
'''
self.posten = []
self.__sachbearbeiter = sachbearbeiter
self.__kunde = kunde
Meine Idee war wenn ich einen posten erstelle, das dieser dann mit folgender Methode in die Liste Posten geshrieben wird:
def addPosten(self, neuerPosten):
self.posten.append(neuerPosten)
Wenn ich mir dann die Liste Posten ausgeben lassen möchte (mit folgender Methode):
def getPosten(self):
return self.posten
bekomem ich immer nur den Speicherort übergeben. Ich möchte aber gerne den Inhalt sehen bzw. auch weiter verarbeiten.
Meine beiden anderen Konstruktoren der Klasse (Produkt und Posten) sehen wie folgt aus:
Produkt:
class Produkt(object):
def __init__(self, preis, name):
self.__preis = preis
self.__name = name
jeweils mit Get und Set Methoden für preis und name.
Posten (der Übergabe Parameter produkt, bezieht sich auf ein Object der Klasse Produkt):
def __init__(self, menge, produkt):
self.__produkt = produkt
self.__menge = menge
auch mit Get und Set Methoden.
Ich verstehe nun nicht wie ich das Object "posten" in die Liste hinzufüge und wie ich mir diese ausgeben lassen kann(sprich mit den variablen).
Außerdem würde ich gerne mit dem Eintrag in der Liste arbeiten z.B. einen Preis berechnen, hier fehlt mir das Verständnis wie ich auf die Parameter zugreifen kann.
Hinzu kommt das auch neue posten in die Liste geschrieben werden sollten ohne den alten zu überschreiben.
Ich hoffe ich habe das einigermaßen richtig formuliert.
Vielen Dank für das mitgrübeln.
ich bin seit vorgestern dabei mir die Sprache Python anzueignen, daher bitte ich um Verständnis falls der ein oder andere Ausdruck noch nicht dem "Regelwerk" entspricht...
Info:
Ich sitze an der Aufgabe ein kleines "Auftragsprogramm" zu schreiben.
Dies soll die einen Auftrag erfassen, inkl. Sachbearbeiter und Kunde. Es gibt nur einen Auftrag/Sachbearbeiter/Kunde.
Jedoch kann ein Auftrag mehrere Posten haben.(ein Posten besteht aus der variablen: "menge und produkt". Wobei "produkt" ein andere Klasse ist. Die Klasse Produkt enthält. "preis und name" des Produktes.)
Die erste Version des Programmes entheilt statische variablen für posten. Mein Constructor für die Klasse Auftrag sah in dem Fall so aus:
def __init__(self, sachbearbeiter, kunde, posten1=None, posten2=None):
'''
Constructor
'''
self.__posten1 = posten
self.__posten2= posten
self.__sachbearbeiter = sachbearbeiter
self.__kunde = kunde
Jetzt hatte ich das Problem das ich die Preise usw. nicht berechnen konnte wenn ein Posten fehlte. Außerdem war das Programm zu statisch, was wenn man mehr als 2 Posten erfassen möchte.
Darum dachte ich mir das ich eine Liste erstelle..
der neue Konstruktor sieht wie folgt aus:
def __init__(self, sachbearbeiter, kunde):
'''
Constructor
'''
self.posten = []
self.__sachbearbeiter = sachbearbeiter
self.__kunde = kunde
Meine Idee war wenn ich einen posten erstelle, das dieser dann mit folgender Methode in die Liste Posten geshrieben wird:
def addPosten(self, neuerPosten):
self.posten.append(neuerPosten)
Wenn ich mir dann die Liste Posten ausgeben lassen möchte (mit folgender Methode):
def getPosten(self):
return self.posten
bekomem ich immer nur den Speicherort übergeben. Ich möchte aber gerne den Inhalt sehen bzw. auch weiter verarbeiten.
Meine beiden anderen Konstruktoren der Klasse (Produkt und Posten) sehen wie folgt aus:
Produkt:
class Produkt(object):
def __init__(self, preis, name):
self.__preis = preis
self.__name = name
jeweils mit Get und Set Methoden für preis und name.
Posten (der Übergabe Parameter produkt, bezieht sich auf ein Object der Klasse Produkt):
def __init__(self, menge, produkt):
self.__produkt = produkt
self.__menge = menge
auch mit Get und Set Methoden.
Ich verstehe nun nicht wie ich das Object "posten" in die Liste hinzufüge und wie ich mir diese ausgeben lassen kann(sprich mit den variablen).
Außerdem würde ich gerne mit dem Eintrag in der Liste arbeiten z.B. einen Preis berechnen, hier fehlt mir das Verständnis wie ich auf die Parameter zugreifen kann.
Hinzu kommt das auch neue posten in die Liste geschrieben werden sollten ohne den alten zu überschreiben.
Ich hoffe ich habe das einigermaßen richtig formuliert.
Vielen Dank für das mitgrübeln.