Ich will das wirklich unbedingt verstehen, das ist auch der Grund warum ich mir eure Antworten schon sicher 20x durchgelesen habe. Teils wird es nun klarer. Wenn ich dann aber selbst ein "Beipiel" konstruiere, merke ich, dass - wie soll man sagen- noch das Fleisch am Knochen fehlt...
Bsp:
Code: Alles auswählen
import random
class Mathe(object):
def __init__(self):
self.wert1 = random.randint(1,10)
self.wert2 = random.randint(1,10)
rechnen = Mathe()
Auch Mathe().wert1 bzw. Mathe().wert2 gibt Zufallszahlen aus
Wenn ich nun aber das self. vor wert1 und wert2 entferne, kann ich die beiden werte nicht mehr aufrufen und bekomme einen AttributeError, weil das Object Mathe kein Attribut wert1 bzw. wert2 hat.
Ich hatte gedacht, ich initialisiere mit def __init__ die Werte der Klassenattribute UND bin davon ausgegangen, dass - wenn ich das self weglasse - es nur Auswirkungen auf die Instanzen des Objektes hat, die Klasse aber sehr wohl noch die Attribute wert1 und wert2 "hat".
In dem Fall aber hat dann offenbar auch die Klasse keine Attribute wert1 und wert2.