Seite 1 von 1
Hilfe zu Objekten!
Verfasst: Donnerstag 8. Januar 2015, 22:15
von IGnoXX
Hallo Allerseits,
ich bräuchte hilfe in einigen dingen für die Objekte wo ich mir gerade nicht selber helfen kann.., ich hoffe das dieser bereich hier auch richtig ist!
Zu meinen Fragen:
1. Wie kann ich ALLE objekte von der selben sorte aufrufen und die etwas abfragen?
2. Wie kann ich die objekte am besten abspeichern um sie jederzeit aufrufen zu können?
Danke im Voraus,
IGnoXX
Re: Hilfe zu Objekten!
Verfasst: Donnerstag 8. Januar 2015, 22:19
von EyDu
Hallo,
das ist alles etwas zu schwammig, um auf deine Fragen sinnvolle Antworten geben zu können. Wie lautet denn die Problemstellung, welche du lösen möchtest? Warum willst du alle Objekte eines Typs aufrufen und abfragen? Was genau meinst du mit abspeichern?
Re: Hilfe zu Objekten!
Verfasst: Donnerstag 8. Januar 2015, 22:33
von Sirius3
@IGnoXX: dafür gibt es Listen. Du fügst einfach alle Objekte in eine Liste ein, da kann man sie dann jederzeit wieder abrufen.
Re: Hilfe zu Objekten!
Verfasst: Donnerstag 8. Januar 2015, 22:55
von IGnoXX
Danke für die schnellen antworten!
@EyDu: ich arbeite an einem Server für mein MMO-Spiel und jeder Spieler hat sein eigenes Objekt. Als beispiel: ich will alle spieler objekte abfragen ob sie in der nähe von mir sind, oder einige funktionen nur bestimmten objekten ausführen zulassen die eine bedienung erfüllen. Dazu müsste ich alle spieler-objekte abfragen. Vielleicht gibt's ja ein anderen weg ich bin für neues offen & ich hoffe das es jetzt verständlicher ist =)
@Sirius3: Danke! wenn ich der liste jetzt den objekt hinzufüge, dann merkt er sich ja die id vom objekt richtig? wenn ich eine id vom objekten ausgeben will steht da mehr als nur die id , also eine HEX zahl + noch so einiges in den eckigen klammern. Wie könnte ich durch die listen auf alle zugreifen?
Gruß IGnoXX
Re: Hilfe zu Objekten!
Verfasst: Donnerstag 8. Januar 2015, 23:17
von Sirius3
@IGnoXX: nein, in der Liste sind die Objekte selbst enthalten, was Du siehst ist nur die Ausgabe, wenn keine bessere Stringdarstellung definiert wurde. Wie man mit Listen arbeitet, steht in jedem Anfängertutorial.
Re: Hilfe zu Objekten!
Verfasst: Donnerstag 8. Januar 2015, 23:21
von BlackJack
@IGnoXX: In der Liste ist nicht nur die ID sondern *das Objekt*. Listen sind einer der Grunddatentypen von Python der in jedem Grundlagentutorial behandelt werden sollte. Arbeite so etwas doch einfach mal durch. Dann lernst Du auch was ``for``-Schleifen sind, und wie man damit nacheinander an alle Objekte in einer Liste kommt um mit denen dann im Schleifenkörper irgendetwas zu machen. Und noch andere tolle Dinge wie „list comprehensions”, Generatorausdrücke, Funktionen wie `map()` und `filter()`, das Python eine Standardbibliothek hat, dass es dort lauter Module mit nützlichem Inhalt gibt, wie Beispielsweise das `itertools`-Modul, und so weiter.

Re: Hilfe zu Objekten!
Verfasst: Freitag 9. Januar 2015, 09:18
von /me
IGnoXX hat geschrieben:Wie könnte ich durch die listen auf alle zugreifen?
Erstens: Arbeite dringend ein Tutorial durch bevor du in deinem Programm Designentscheidungen triffst, die falsch und später nur noch mit erheblichem Aufwand zu korrigieren sind. Das sind Grundlagen.
Zweitens: Beispielcode (Python 3).
Code: Alles auswählen
import random
class Player():
def __init__(self, name):
self.name = name
self.x = random.randint(1, 10)
self.y = random.randint(1, 10)
def distance(self, target_x, target_y):
return ((self.x - target_x) ** 2 + (self.y - target_y) ** 2) ** 0.5
def main():
players = []
players.append(Player('Tick'))
players.append(Player('Trick'))
players.append(Player('Track'))
print('= Distance from center =')
for player in players:
print('{} ({}/{}): {:.2f}'.format(
player.name,
player.x,
player.y,
player.distance(5, 5)))
if __name__ == '__main__':
main()
Re: Hilfe zu Objekten!
Verfasst: Freitag 9. Januar 2015, 23:54
von IGnoXX
@BlackJack @Sirius3: Danke! Ich werd mir eure ratschläge zu herzen nehmen!
@ /me : danke dir auch ! Vorallem danke für deine Mühe das du soger ein Beispiel mit reingebracht hast, das hat mir echt geholfen!!
gruß IGnoXX