
yipyip
Da es hier um die Stringrepräsentation geht, halte ich das durchaus für sinnvoll. Natürlich nicht im Sinne von grafischer Darstellung aller Art! Da hast Du natürlich Recht. Aber eine __str__() Methode zu haben ist schon sinnvoll imho. Ich hätte das sofort klarer ausdrücken müssen.lunar hat geschrieben: Eher nicht. Ein Objekt der Logik-Schicht hat keine Ahnung vom Darstellungsmedium und kann sich deswegen auch nicht "drucken". Dafür ist dann die entsprechende Ansicht in der Präsentationsschicht verantwortlich.
Code: Alles auswählen
class Attributes:
def __init__(self, geist, körper, geschick, sozial, wille, sinne):
self.geist, self.körper, self.geschick, self.sozial, self.wille, self.sinne = ...
held.attributes = Attributes(geist=4, körper=6, ...)
if held.attributes.wille < 5:
print "Du bist zu willensschwach, um dem Zauber zu widerstehen..."
Ja, ich finde auch dass Umlaute in Bezeichnern alles andere als gewünscht ist. Es mag sein, dass das für sehr beschränkte Sachen nützlich ist. Aber ich habe mir angewöhnt alles in Englsich zu machen: Bezeichner im Code, Kommentare, Dokumentation.cofi hat geschrieben:Das mit den Umlauten stimmt schon, die Frage ist aber, ob man nicht generell den Quelltext in Englisch schreiben sollte, da es zum Programmieren eh benötigt wird und da es den einfachsten Schriftsatz hat - auf einer englischen Keymap ein `ü' zu schreiben ist eine sehr lustige Geschichte, wenn man keinen Editor hat, der Digraphen unterstützt.
Code: Alles auswählen
hero.attribute["Stärke"] = 5
Code: Alles auswählen
hero.attribute[u"Stärke"] = 5
Code: Alles auswählen
# -*- coding: UTF-8 -*-
Code: Alles auswählen
In [14]: a = "stärke"
In [15]: type(a)
Out[15]: <type 'str'>
In [16]: unicode(a)
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
/home/jim/<ipython console> in <module>()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2: ordinal not in range(128)
Würde ich nicht empfehlen, denn damit drückst du dich um ein OO-Design. Was wenn du z.B. die Attribute eines Charakters zufällig ermitteln willst. Da wäre doch nett, eine "randomize"-Methode bei "Attributes" zu haben. Und komme mir keiner mit der Idee, eine Unterklasse von dict dafür zu bauen. Wenn es immer nur die gleichen 6 Attribute sind, dann sollten auch auch Attribute eines Objekts sein und nicht Werte, die man sich unter einem Schlüssel merkt. IMHO.gkuhl hat geschrieben:ich hätte ich gedacht statt der Tupel ein Dictionory zu verwenden