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