Problem mit Klassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Lampy
User
Beiträge: 7
Registriert: Samstag 25. Februar 2006, 19:36

Problem mit Klassen

Beitragvon Lampy » Samstag 25. Februar 2006, 19:42

Hi!

Ich habe folgendes Python-Skript:

Code: Alles auswählen

class MyClass:
   word = False
   messages = []
   def __init__(self, word):
      self.word = word
      del word
      if self.word == 'word1':
         self.messages.append('this is a good word')

instance1 = MyClass('word1')
print instance1.messages
del instance1

instance2 = MyClass('word2')
print instance2.messages
del instance2


Meine Frage: Wieso ist auch instance2.messages mit der Meldung versehen? Sollte das nicht leer sein, da die if-Abfrage in der Klasse negativ ist?

Wenn ich innerhalb der Klasse "if self.word == 'word1'" durch "if self.word == 'word2'" ersetze, also das ganze andersherum mache, ist instance1.messages nicht mit der Meldung versehen.

Was mache ich falsch???

Grüße
Markus
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Samstag 25. Februar 2006, 19:43

Weil das ein Klassenattribut ist. Wenn du es auf Objektebene setzen willst musst du die Zuweisung im Konstruktor (__init__) machen.
TUFKAB – the user formerly known as blackbird
Lampy
User
Beiträge: 7
Registriert: Samstag 25. Februar 2006, 19:36

Beitragvon Lampy » Samstag 25. Februar 2006, 20:33

Wie müsste ich den Quellcode dann abändern???
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Samstag 25. Februar 2006, 21:01

Code: Alles auswählen

class MyClass(object):

    def __init__(self, word):
        self.word = word
        self.messages = []
        if self.word == 'word1':
            self.messages.append('this is a good word')
TUFKAB – the user formerly known as blackbird

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google [Bot]