Seite 1 von 2

Listenobjekte

Verfasst: Dienstag 24. Januar 2006, 08:04
von Alpha-Phonix
Hallo Forum!

ich suche verzweifelt nach einer möglichkeit, eine liste als klassenobjekte anzulegen!
also es soll folgendermaßen sein...
ich habe eine klasse(funktioniert mit angelegten objekten schon), in der klasse wird ein kreisobjekt angelegt und macht diverse rechnungen in der klasse!

jetzt will ich aber, dass der benutzer die möglichkeit hat, 5 kreise anzulegen...ich dacht mit listen würde das gut gehn...irgendwie so (nicht lachen, ich weiß, dass die syntax falsch ist!):

liste=[5]=Kreis()

Kreis ist die Klasse, liste soll 5 Objekte beinhalten....wie kann ich das realisieren??
Gruß und vielen dank!

Re: Listenobjekte

Verfasst: Dienstag 24. Januar 2006, 08:23
von gerold
Alpha-Phonix hat geschrieben:Kreis ist die Klasse, liste soll 5 Objekte beinhalten....wie kann ich das realisieren?
Hi Alpha-Phonix!

So

Code: Alles auswählen

keise = [ Kreis() for i in range(5) ]
oder

Code: Alles auswählen

kreise = []
for i in range(5):
    kreise.append(Kreis())
mfg
Gerold
:-)

Verfasst: Dienstag 24. Januar 2006, 09:32
von Alpha-Phonix
ah ok, vielen dank!

falls es noch fragen dazu gibt, melde ich mich wieder. ich versuch jetzt, dass ich mit hilfe einer variablen, alles objekte ansprechen kann!

Verfasst: Dienstag 24. Januar 2006, 09:35
von jens
kreise ist ja dann eine Liste. An die einzelnen Elemente kommst du mit kreise[index]... Interieren:

Code: Alles auswählen

for kreis in kreise:
    print kreis

Verfasst: Dienstag 24. Januar 2006, 09:45
von Alpha-Phonix
also des prob isch folgendermaßen!

ich hab jetzt eine liste mit 5 objekte der klasse kreis. ich hab jetzt mehrere funktionen die ausgeführt werden sollen.

Code: Alles auswählen

kreis = [ Kreis() for i in range(5) ]
z1=Zeichnung()
z1.hinzufuegen_kreis(kreis)
radius=raw_input("Radius (cm): ") schnittlaenge_kreis=kreis.rechneSchnittlaengeKreis(radius)
print schnittlaenge_kreis,"cm"

jetzt will ich für jeden kreis einen radius eingeben und anschließend soll jeder kreis in die funktion rechneSchnittlaengeKreis, etwas rechnen und das ausgeben...
wie könnte ich da rangehen?

Verfasst: Dienstag 24. Januar 2006, 10:06
von gerold
Hallo Alpha-Phonix!

Schreibe deine Codebeispiele bitte immer in

Code: Alles auswählen

-Tags. Du kannst deine eigenen Beiträge im Nachhinein noch einmal editieren, indem du auf den [Edit]-Button klickst.

mfg
Gerold
:-)

Verfasst: Dienstag 24. Januar 2006, 10:12
von Alpha-Phonix
oh tut mir leid, wusste ich nicht, habs schon geändert!
jemand nen vorschlag, wie ich des realisieren könnte? bin grad eifrig am tüfteln, bin aber noch nicht drauf gekommen!

Verfasst: Dienstag 24. Januar 2006, 11:24
von gerold
Alpha-Phonix hat geschrieben:jemand nen vorschlag, wie ich des realisieren könnte?
Hi Alpha-Phonix!

Dein Problem ist, dass es sich hier um Python-Basics handelt, die du noch nicht weißt. Wäre es nicht besser, zuallererst ein gutes Einsteigerbuch für Python zu lesen?

Code: Alles auswählen

In [1]: mylist = ["a", "b", "c"]

In [2]: print mylist[2]
c

In [3]: for item in mylist:
   ...:     print item
   ...:
a
b
c

In [4]: mylist[1] += " ist ein Buchstabe"

In [5]: print mylist
['a', 'b ist ein Buchstabe', 'c']

Code: Alles auswählen

kreise = [ Kreis() for i in range(5) ]
...gibt dir eine *Liste* mit Kreis-Instanzen zurück. Um auf eine der
Kreisinstanzen zuzugreifen, musst du wie oben beschrieben arbeiten.

Code: Alles auswählen

kreise[0].attribut_xy = "Servus"
mfg
Gerold
:-)

Verfasst: Dienstag 24. Januar 2006, 13:05
von Alpha-Phonix
vielen dank erst einmal!

also ich mach des mehr oder weniger net unbedingt zum spaß, mach grad ne ausbildung und soll sowas progammieren und soll mir die infos irgendwo beschaffen!

ich hab schon bissle c/c++ erfahrungen, deshalb weiß ich ja, dass es diese befehle alle gibt, nur ich kenn die syntax in python nicht....

welches buch würde sich denn da empfehlen? grad um nach solchen sachen nachzuschlagen?

gruß

Verfasst: Dienstag 24. Januar 2006, 13:07
von jens
Hier ein paar Links: [wiki]FAQ#WieFangeIchAlsEinsteigerAn[/wiki]

Verfasst: Dienstag 24. Januar 2006, 13:15
von gerold

Verfasst: Dienstag 24. Januar 2006, 13:22
von Alpha-Phonix
ihr seit spitze vielen dank!
kennt jemand das buch "python ge-packt"?
oder "Objektorientierte Programmierung mit Python"
grüßle

Verfasst: Dienstag 24. Januar 2006, 13:54
von gerold
Alpha-Phonix hat geschrieben:"python ge-packt"?
oder "Objektorientierte Programmierung mit Python"
Hi Alpha-Phonix!

Python ge-packt ist ein Buch, das ich als "wertvoll" einstufe. Wertvolle Bücher sind Bücher, die ständig in meiner Nähe sind, damit ich schnell mal wieder etwas nachschlagen kann.

Objektorientierte Programmierung mit Python fange ich gerade erst zu lesen an. Dazu kann ich dir nicht viel sagen, außer, dass es für Anfänger und auch für Leute, die schon mal etwas mit OOP zu tun hatten, wahrscheinlich nicht schlecht geeignet ist. Es erklärt nicht nur, wie man mit Python Programme schreibt und debugged, sondern geht auch ziemlich auf die OOP mit Python ein. Wie es der Titel ja schon prophezeit (?schreibt man das so?). :-)

mfg
Gerold
:-)

Verfasst: Dienstag 24. Januar 2006, 13:59
von Alpha-Phonix
ah ok gut, dann werd ich mir das mal anschaffen und nachlesen, damit ich euch nicht immer belöstigen muss ;-)

noch was zum programmieren allgemein, ich suche schon länger eine gute ide, hab grad pythonwin drauf, und finde, dass der debugger etc schwer verständlich ist!
gibt es da noch andere lösungen?
vielen dank

Verfasst: Mittwoch 25. Januar 2006, 21:25
von Andy
Hallo Alpha-Phonix!
noch was zum programmieren allgemein, ich suche schon länger eine gute ide, hab grad pythonwin drauf, und finde, dass der debugger etc schwer verständlich ist!
gibt es da noch andere lösungen?


wenn Du ne IDE suchst, benutze die Suchfunktion hier im Forum.
Wurde schon sehr oft besprochen...(Ich benutze die normale Idle auch noch) z. B.: http://www.python-forum.de/viewtopic.php?p=23433#23433
kennt jemand das buch "python ge-packt"?
oder "Objektorientierte Programmierung mit Python"
Objektorientierte Programmierung ist DAS Buch für Anfänger. Ich find das
absolut hilfreich. Kauf`Dir das auf jedem Fall. Auch hierzu: die Suchfunktion verät Dir einiges über Buchbesprechungen.

Gruss Andy

Verfasst: Donnerstag 26. Januar 2006, 02:57
von Joghurt
Noch ein Hinweis: Was nicht geht, ist

Code: Alles auswählen

kreise = [Kreis()]*5
Dann hätte zwar kreise 5 Kreis-Instanzen, jedoch sind dies allles Referenzen auf ein und dieselbe Instanz.

Wollte dich nur warnen, falls du dieses Feature von Python entdeckst.

Verfasst: Donnerstag 26. Januar 2006, 16:09
von N317V
Alpha-Phonix hat geschrieben:noch was zum programmieren allgemein, ich suche schon länger eine gute ide, hab grad pythonwin drauf, und finde, dass der debugger etc schwer verständlich ist!
Benutze ich auf Windows ebenfalls und hab keine Probleme damit. Was ist Dir denn da unverständlich? Vielleicht kann ich ja helfen?

Verfasst: Freitag 27. Januar 2006, 08:07
von Alpha-Phonix
ich weiß nicht, ich kriegs mit dem debugger irgendwie nicht hin!
ich hab noch nicht mal richtig durchgeschalten, wie er funkzt!

Verfasst: Freitag 27. Januar 2006, 09:54
von N317V
Hmmm... einfach auf den 'Go'-Button klicken und laufen lassen. Entweder kommt dann in der Statuszeile "SCRIPTNAME returned exit code 0", dann war alles gut, oder es kommt ne Fehlermeldung in der Pythonshell oder mehrere. Dort kannst Du dann draufklicken und kommst sofort in die Zeile, wo der Fehler aufgetreten ist. Der Button 'Step' führt das Script Blockweise aus, 'Step Over' überspringt die nächste Anweisung, 'Step Out' springt zur ersten Anweisung nach dem aktuellen Block. Mit der Hand und der durchgestrichenen Hand kann man Breakpoints setzen und löschen. Es gibt mit der 'Pflaume' eine Liste der Breakpoints und der Stapel, tja, der bringt eine hierachische Liste des Stack. 'Watch' hab ich selber noch nicht rausgefunden, brauch ich aber auch nie.

Unter dem Menüpunkt 'Help' kommt man zur PythonWin Reference. Dort findet man bei einer Suche nach 'debug' ein Debugger-Tutorial und die Doku. Eigentlich geht das fast genauso wie in *shudder* Visual Studio.

Verfasst: Montag 30. Januar 2006, 11:02
von Alpha-Phonix
so bin nun gut weiter gekommen, jetzt fehlt mir nur noch eins...

ich will unbeschränkt objekte anlegen können, diese sollen in einer liste gespeichert werden, leider schaff ich des net....

Code: Alles auswählen

z1=Zeichnung()
radius=raw_input("Radius (cm): ")
kreis=Kreis(radius) # soll nicht nur einer sonder viele werden
z1.hinzufuegen_kreis(kreis)
schnittlaenge_kreis=kreis.rechneSchnittlaengeKreis(radius)
flaeche_kreis=kreis.rechneFlaecheKreis(radius)
die Klasse Zeichnung soll praktisch eine Liste verwalten, von Kreisen die angelgt wurden!