article

In der Programmierung bedeutet Reflexion (engl. reflection) bzw. Introspektion, dass ein Programm Erkenntnisse über seine eigene Struktur gewinnen kann.

Eine wichtige Rolle spielt Reflexion im Zusammenhang mit typensicherer Programmierung, aber auch in Fragen der Persistenz (persistente Datenhaltung von Objekten und deren Beziehungen).

Reflexion ermöglicht es bei objektorientierter Programmierung beispielsweise, zur Laufzeit Informationen über Klassen oder deren Instanzen abfragen zu können. Bei einer Methode sind das unter anderem deren Sichtbarkeit, die Art des Rückgabewertes oder die Art der Übergabeparameter. Die Umsetzung ist dabei sprachspezifisch realisiert.

Beispiel in der Programmiersprache Python


x = "A string" type(x) # ergibt x.__class__ # wie oben, x.__class__.__name__ # 'str'   # definiere eigene Klasse class SomeClass(object): def A(self): pass def B(self): pass classVar = "some class var"   y = SomeClass() # y ist jetzt eine Instanz von SomeClass y # <__main__.SomeClass object at 0xb7b676cc> y.__class__ # y.__class__.__name__ # 'SomeClass'   # Gib Methoden und Attribute von y aus for i in dir(y): if i* != "_": # verstecke Spezialnamen (beginnen mit "_") print "%s: %r" % (i, getattr(y, i))   # Ausgabe: A: > B: > classVar: 'some class var'

Programmierung

Reflection (computer science) | Réflexion (informatique) | Riflessione (informatica) | Refleksija | Отражение (программирование) | Reflection (khoa học máy tính)

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Reflexion (Programmierung)".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld