Python: Objektorientierte Programmierung
Python unterstützt natürlich Objektorientierte Programmierung (OOP) (u.a. Polymorphie, (Mehrfach-) Vererbung, ...). Hier erst einmal kurzes Beispiel, um ein Gefühl dafür zu vermitteln, wie OOP in Python aussieht:class Greeter:
def __init__(self):
self.message = 'Hello World!'
def greet(self):
print self.message
class Shouter(Greeter):
def greet(self):
print self.message.upper()
greeter = Greeter() # Instanzierung
greeter.greet()
greeter = Shouter()
greeter.greet()
Greeter und Shouter, definiert, jeweils mit einer Methode greet. Greeter besitzt einen Konstruktor, __init__, in dem die Instanzvariable message gesetzt wird. Wie auch "normale" Variablen, müssen Instanzvariablen nicht deklariert werden - sie werden durch die Zuweisung automatisch erzeugt. Die Klasse Shouter ist von Greeter abgeleitet und überschreibt die Methode greet.Nach den Klassendefinitionen wird zuerst ein
Greeter-Objekt instanziert, indem die Klasse "aufgerufen" wird. Dies resultiert in einem Aufruf des Konstruktors __init__ von Greeter. Anschließend wird seine Methode greet() aufgerufen. Anschließend wird dies mit Shouter wiederholt.Alle Methoden deklarieren die Instanzvariable (konventionellerweise
self genannt) explizit, im Gegensatz zu C++ und Java , wo der this-Pointer bei jeder (nicht-statischen) Methode implizit vorhanden ist.Generell sieht eine Klassendefinition wie folgt aus:
class KlassenName(BasisKlasse1, BasisKlasse2, ...):
<Anweisung-1>
...
<Anweisung-N>
def-Blöcke, die Methoden definieren, wie im obigen Beispiel. Andere Anweisungen sind allerdings auch möglich, etwa um eine Klassenvariable zu definieren:
class Test:
i = 123
print Test.i
greeter = Greeter()
greet = greeter.greet
while 1:
greet()
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ CGI-Programmierung
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project