Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Die Basis der Objektorientierung
3 Die Prinzipien des objektorientierten Entwurfs
4 Die Struktur objektorientierter Software
5 Vererbung und Polymorphie
6 Persistenz
7 Abläufe in einem objektorientierten System
8 Module und Architektur
9 Aspekte und Objektorientierung
10 Objektorientierung am Beispiel: Eine Web-Applikation mit PHP 5 und Ajax
A Verwendete Programmiersprachen
B Literaturverzeichnis
Stichwort
Ihre Meinung?

Spacer
 <<   zurück
Objektorientierte Programmierung von Bernhard Lahres, Gregor Rayman
Das umfassende Handbuch
Buch: Objektorientierte Programmierung

Objektorientierte Programmierung
2., aktualisierte und erweiterte Auflage, geb.
656 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1401-8
Pfeil A Verwendete Programmiersprachen
  Pfeil A.1 C++
  Pfeil A.2 Java
  Pfeil A.3 C#
  Pfeil A.4 JavaScript
  Pfeil A.5 CLOS
  Pfeil A.6 Python
  Pfeil A.7 Ruby


Rheinwerk Computing - Zum Seitenanfang

A.6 Python  topZur vorigen Überschrift

Python ist eine interpretierte, interaktive, dynamisch typisierte objektorientierte Programmiersprache, die nach der populären britischen Komikertruppe Monty Python benannt wurde. Ihre Entwicklung startete 1990 Guido van Rossum. Es handelt sich um eine objektorientierte Programmiersprache, in der alle im Programm verwalteten Daten Objekte sind. Sogar die einfachen Werte wie die Zahlen sind Objekte mit eigenen Methoden. So entspricht der Aufruf abs(-1) dem Aufruf der Methode __abs__() der Zahl –1.

Dennoch kann man Python nicht als rein objektorientiert bezeichnen, weil Python globale Funktionen und Prozeduren zulässt und keine »echte« Datenkapselung zulässt. [In Python sind alle Elemente eines Objekts immer öffentlich. Trägt jedoch ein Element einen Namen, der mit zwei Unterstrichen anfängt, erweitert Python diesen Namen um den Namen der definierenden Klasse. Auf diese Art werden potenzielle Namenskonflikte meistens umgangen. ]

Syntax von Python

Wenn man die Syntax von Python zum ersten Mal kennen lernt, kann man zuerst den Eindruck gewinnen, sich tatsächlich in einem Sketch von Monty Python zu befinden. Denn in Python, im Gegensatz zu fast allen anderen Programmiersprachen, spielt die Einrücktiefe eine wesentliche Rolle.

Die Blöcke werden durch die Anzahl der Leerzeichen am Anfang der Zeilen bestimmt. Keine Klammern, kein begin/end sind notwendig. Doch wenn man sich an die Philosophie von Python gewöhnt hat, lernt man diese Art der Blockbildung zu schätzen. In Sprachen wie C++, Java und vielen anderen, in denen die Blöcke mit Klammern oder Schlüsselwörtern bestimmt werden und die Einrücktiefe keine syntaktische Bedeutung für den Compiler oder den Interpreter hat, nutzt man die Einrücktiefe ohnehin, um die Quelltexte für den Menschen leichter lesbar zu machen.

Die Einrücktiefe und die Blocktiefe sind in solchen Programmiersprachen formell voneinander unabhängig, tatsächlich aber erwartet man, dass sie sich entsprechen und redundant dieselbe Information über die Programmstruktur tragen. Wenn sich in einem C++-Quelltext die Einrücktiefe und die durch die Klammern bestimmte Blocktiefe widersprechen, betrachtet man den Quelltext als falsch formatiert und möglicherweise fehlerhaft. Diese Redundanz und potenzielle Verwirrungsquelle gibt es in Python nicht.

Schauen wir uns jetzt die pythonsche Syntax an einem Beispielquelltext an:

class VersionNumber(object):  
   def __init__(self, values):  
      self.parts = values[:]  
   def __str__(self):  
      result = ""  
      sep = "" 
      for n in self.parts:  
         result += sep + str(n)  
         sep = "." 
      return result  
 
v = VersionNumber( [1,2,3] )  
print v.__str__() 
  • Hier deklarieren wir die Klasse VersionNumber, die von der Klasse object abgeleitet ist.
  • Die spezielle Methode __init__ wird beim Erzeugen eines Exemplars einer Klasse aufgerufen. Beachten Sie, dass das erste Argument self explizit genannt ist. In Sprachen wie Java oder C++ haben objektbezogene Methoden ein implizites Argument this, in Python muss dieses Argument explizit benannt werden. Den Namen self haben wir willkürlich gewählt, wir könnten diesem Argument auch einen anderen Namen geben.
  • Wir ordnen hier einen Datensatz mit dem Namen parts dem neu erzeugten Objekt self zu. Diesem Datensatz weisen wir eine Kopie der Liste zu, die als Parameter mit dem Namen values übergeben wurde.
  • Hier definieren wir die Methode __str__, die von der globalen Funktion str() aufgerufen wird. Diese wird verwendet, um eine Textrepräsentation eines Objekten zu erstellen.
  • Dazu deklarieren und initialisieren wir zuerst eine lokale Variable result
  • und zählen alle Elemente der Liste self.parts.
  • Dem result fügen wir nach und nach die Elemente getrennt durch Punkte zu.
  • Und schließlich geben wir die Variable result zurück.
  • Ein neues Exemplar der Klasse VersionNumber erzeugen wir, indem wir den Klassennamen »aufrufen«, als ob er eine Funktion bezeichnen würde. Beachten Sie bitte, dass wir nur ein Argument (die Liste [1,2,3]) übergeben, obwohl die Funktion __init__ zwei Argumente erwartet.
  • Die Funktion __str__ wird hier ganz ohne Argumente aufgerufen. Python übergibt als erstes Argument automatisch das aufgerufene Objekt, in diesem Falle v. [Die Methode __str__ müssten wir in diesem Kontext gar nicht angeben. Die Prozedur print würde sie implizit aufrufen, um eine Textrepräsentation des Objekts v zu bekommen. ]

Ressourcen

Die meistverwendete Version von Python läuft als eine native Anwendung auf verschiedenen Betriebssystemen. Die aktuelle Version ist auf der Internetseite http://www.python.org zusammen mit der Dokumentation und verschiedenen Bibliotheken verfügbar. Außerdem gibt es Im-plementierungen für die Java Virtual Machine (http://www.jython.org) und für das .NET-Framework (http://www.ironpython.com/).



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

 <<   zurück
  Zum Rheinwerk-Shop
Neuauflage: Objektorientierte Programmierung






Neuauflage:
Objektorientierte Programmierung

Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern