Felder und ihre Initialisierung (Felder und ihre Initialisierung), Lektion, Seite 724748
https://www.purl.org/stefan_ram/pub/felder_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Felder und ihre Initialisierung

Felder

Wir können das Objekt mit einer Methode initialisieren.

Durch Bindung an ein Attribut des Zielobjektes wird das Attribut im Zielobjekte gleichzeitig angelegt, falls es bisher noch nicht existierte.

main.py

class C():
def init( self ):
self.a = 2
def print( self ):
print( self.a );

c = C()

c.init()
c.print()

Protokoll
2

Die attributerzeugende Bindung kann auch außerhalb der Klasse geschehen (nicht bei jedem Objekt).

main.py

class C():
pass

c = C()

c.a = 7
print( c.a )

Protokoll
7

Der Standardname »__init__«

Die Methode »__init__« wird „auf magische Weise“ (stillschweigend, implizit) beim Anlegen eines neuen Objekts aufgerufen.

main.py

class C():
def __init__( self ):
print( '__init__ was called.' );
self.a = 2
def print( self ):
print( self.a );

c = C()

c.print()

Protokoll
__init__ was called.
2

Felder von Klassen und ihrer Exemplaren

main.py

class C():
a = 2
def __init__( self ):
self.b = 12
def print( self ):
print( self.a );

c = C()

print( C.a, c.a, c.b ); C.a += 1; c.b += 1
print( C.a, c.a, c.b ); c.a += 1; c.b += 1
print( C.a, c.a, c.b ); d = C()

print( C.a, d.a, d.b ); C.a += 2;
print( C.a, c.a, c.b );
print( C.a, d.a, d.b );

Protokoll
2 2 12
3 3 13
3 4 14
3 3 12
5 4 14
5 5 12

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724748 stefan_ram:724748 Felder und ihre Initialisierung Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724748, slrprddef724748, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/felder_python