Klassenattribute gehören zur Klasse selbst. Sie werden von allen Instanzen geteilt und haben den gleichen Wert. Klassenattribute werden außerhalb aller Methoden definiert. Überlicherweise sind sie direkt unter dem Klassenheader positioniert.
>>> class A: ... a = "I am a class attribute!" ... >>> x = A() >>> y = A() >>> x.a 'I am a class attribute!' >>> y.a 'I am a class attribute!' >>> A.a 'I am a class attribute!'
Vorsicht, wenn man ein Klassenattribut ändern will. Man muss es immer mit der Notation ClassName.AttributeName tun und nicht über einen Instanznamen.
>>> x.a = "This creates a new instance attribute for x!" >>> y.a 'I am a class attribute!' >>> A.a 'I am a class attribute!' >>> x.a 'This creates a new instance attribute for x!'