Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

30.01.2013, 11:58

[Python] Anfängerfrage in Oo-Programmierung

Hallo zusammen!
Ich bin mal wieder ein bisschen doof :( Aber ich setze mich nun in letzter Zeit mit objektorientierter Programmierung auseinander und es kommen ein paar Fragen auf. Ich glaube ich habe im Prinzip noch nicht verstanden, was daran so gut ist, dass es jetzt überwiegend benutzt wird.
Aber jetzt mal zu meinem konkreten Problem:
Ich möchte eine (sinnbildliche) Behältnisklasse programmieren, also eine Klasse mit mehreren Attributen, aber zu diesen Attributen gehört auch, dass sich mehrere andere Objekte einer anderen Klasse in dieser Behältnisklasse befinden. Ist das überhaupt möglich?
Und des weiteren möchte ich für diese Behältnisklasse eine Methode implementieren, die einen Sortieralgorithmus ausführt, der die jeweiligen anderen sich in diese Behältnis befindenden Objekt nach einem Attribut sortiert. Wie kann das implementiert werden :(?
Ich hoffe, Ihr versteht was ich meine.
Für jede Hilfe wäre ich unheimlich dankbar :(!
Liebe Grüße!

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

30.01.2013, 12:10

In Python keine Ahnung, in Java würde man das wohl als Map und dem Interface Comparable oder einem Comparator lösen, in C# äquivalent. Python wird da wohl schon etwas zur Verfügung stellen, würde mich wundern, wenn nicht.
Du brauchst folglich keine Behältnisklasse bauen.

Für WAS soll denn diese Behältnisklasse dienen? Da gibt es sicherlich eine bessere Variante und da kämen wir dann auch wieder zu OOP zurück.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

3

30.01.2013, 12:13

Ich versteh die Frage nicht 100%. Meinst du eventuell ein dict/list und diese dort enthaltenen Member sollen sortiert werden?
Dann wäre das hier ein Anhaltspunkt: http://www.saltycrane.com/blog/2007/09/h…ionary-by-keys/
Ansonsten nochmal konkreter fragen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

4

30.01.2013, 12:24

danke für die antworten :) aber ich hab mich ja wirklich sehr undeutlich ausgedrückt^^

Ich werde das jetzt noch ein bisschen konkreter formulieren ^^
Es gibt einen Rucksack mit Gegenständen, diese haben jeweils ein Gewicht und einen Wert.
Jetzt sollen die eben so sortiert werden, dass das Maximalgewicht für den Rucksack eingehalten wird und möglichst wertvolle Gegenstände drinbleiben.
Ich habe mir das jetzt so gedacht, dass ich eine Klasse für die Gegenstände schreibe mit den jeweiligen Attributen.
Aber wo ich jetzt leider nicht mehr weiter komme (ich bin noch nicht sehr lange dabei) ist, das so zu programmieren, dass die jeweiligen Attribute "genommen" werden und ich mit denen einen Sortieralgorithmus schreiben kann.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

30.01.2013, 12:34

http://wiki.python.org/moin/HowTo/Sorting/

Zitat

Quellcode

1
2
3
4
5
6
7
>>> student_tuples = [
        ('john', 'A', 15),
        ('jane', 'B', 12),
        ('dave', 'B', 10),
]
>>> sorted(student_tuples, key=lambda student: student[2])   # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

6

30.01.2013, 12:36

Hallo, dankeschön! Aber Wie, wenn ich den Sortieralgorithmus selber schreiben möchte? Wie kann ich auf die Werte der Attribute zugreifen?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

30.01.2013, 12:46

Wie man in Python eben auf Attribute zugreift. Das sollte in JEDEM Grundlagentutorial zur Sprache stehen.
(x.foo)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige