Galileo Computing < openbook > Galileo 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

Download:
- ZIP, ca. 5,2 MB
Buch bestellen
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
Galileo 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


Galileo 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/).



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Objektorientierte Programmierung






Objektorientierte Programmierung
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Tipp
Zum Katalog: Coding for Fun







 Coding for Fun


 Buchempfehlungen
Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Visual Basic 2008






 Visual Basic 2008


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: C/C++






 C/C++


Zum Katalog: C++ von A bis Z






 C++ von A bis Z


Zum Katalog: PHP 5.3 und MySQL 5.1






 PHP 5.3 und
 MySQL 5.1


Zum Katalog: Python 3






 Python 3


Zum Katalog: Besser PHP programmieren






 Besser PHP
 programmieren


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 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.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de