`self` repräsentiert die Instanz deiner Klasse. `self.seconds = 60` heißt: "Weise dem Attribut `seconds` der "aktuellen" Klasseninstanz den Wert `60` zu" Die Instanz ist immer das erste Objekt, das den Klassenmethoden übergeben wird.* Man kann es beliebig benennen aber allgemein hat sich `self` eingebürgert und sollte, um Missverständnisse zu vermeiden, auch so übernommen werden.
---
*EDIT: Bevor es zu Missverständnissen kommt, forme ich den Satz besser um: Das erste Objekt, das einer Klassenmethode übergeben wird, ist immer die Instanz der Klasse. Die Instanz ist in der Regel das, was herauskommt, wenn man sie aufruft:
Code: Alles auswählen
>>> class Foo(object):
... def say_bar(self):
... return 'bar'
...
>>> Foo.say_bar()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unbound method say_bar() must be called with Foo instance as first argument (got nothing instead)
>>> Foo().say_bar()
'bar'
Wie du siehst, kann auch auf die (meisten) Methoden einer Klasse erst zugegriffen werden, nachdem man die Klasse aufgerufen (also initialisiert) hat.
Wenn man es sich ganz umständlich machen will, könnte man die geforderte Instanz der Klasse auch so an ihre `foo()`-Methode übergeben:
Das ist aber unüblich und soll nur der Veranschaulichung dienen.