DeJe hat geschrieben:a) Nein. Wenn später zusätzliche "Spieler"-Klassen dazu kommen wird es kompliziert welche Viecher z.B. ein Bug angreifen kann.
Ich habe das jetzt mal über set() versucht. Das Ergebnis war sehr frustrierend, in Bezug auf Performance. Ich bleibe erstmal bei INT und nutze '&' und '|'. Das hat den Vorteil das ich mich damit bestens auskenne und es verdammt schnell ist.
Wenn du solche Lowlevel Optimierungen magst solltest du C programmieren und nicht Python
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Ja, da hast du sicher recht.
Aber bei dieser Applikation sei es mir vielleicht verziehen mit & und | zu arbeiten statt Sets. Als nächstes Projekt suche ich mir etwas was keine solch hohen Ansprüche an die Performance stellt.
DeJe hat geschrieben:Ja, da hast du sicher recht.
Aber bei dieser Applikation sei es mir vielleicht verziehen mit & und | zu arbeiten statt Sets. Als nächstes Projekt suche ich mir etwas was keine solch hohen Ansprüche an die Performance stellt.
Ich frage mich mehr warum die Bitfields und ifs an Stelle von Vererbung verwendest. Ein Bitfield an Stelle eines Sets kann ich noch als Legitim ansehen.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Kannst du mir mal ein Beispiel zeigen wie du das genau meinst?
Sozusagen für jede Kategorie eine Stellvertreterklasse?
Wie kann man am schnellsten auf Zugehörigkeit einer Klasse prüfen? Instanz.__class__...?
Dann bekomme ich bei Vergleichen aber auch wieder Stringvergleiche rein.
DeJe hat geschrieben:Kannst du mir mal ein Beispiel zeigen wie du das genau meinst?
Sozusagen für jede Kategorie eine Stellvertreterklasse?
Wie kann man am schnellsten auf Zugehörigkeit einer Klasse prüfen? Instanz.__class__...?
Dann bekomme ich bei Vergleichen aber auch wieder Stringvergleiche rein.
Oder habe ich dich flasch verstanden?
isinstance(obj, class)
Und das wären wohl keine reinen Tagging Klassen, sondern diese können / sollen auch Logik enthalten.
Es ist sogar möglich das der Code dadurch wieder vergleichbar schnell/schneller wird. Er ist jedoch sicherlich besser wartbar, erweiterbar und testbar!
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Danke.
Ich habe das jetzt mal umgebaut. Ist schon eleganter als mit Bitfields, unbestritten. Die Performance ist nur ein klein wenig schlechter, damit kann ich leben.
Nachdem ich das ganze jetzt noch einmal umgebaut habe poste ich mal eine neue Version. sidlegui.py sidle.py myants.py
@Veers, hast du dir das etwa so vorgestellt?