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

...powered by haas.homelinux.net...

Inhaltsverzeichnis
1 Einleitung
2 Überblick über Python
3 Die Arbeit mit Python
4 Der interaktive Modus
5 Grundlegendes zu Python-Programmen
6 Kontrollstrukturen
7 Das Laufzeitmodell
8 Basisdatentypen
9 Benutzerinteraktion und Dateizugriff
10 Funktionen
11 Modularisierung
12 Objektorientierung
13 Weitere Spracheigenschaften
14 Mathematik
15 Strings
16 Datum und Zeit
17 Schnittstelle zum Betriebssystem
18 Parallele Programmierung
19 Datenspeicherung
20 Netzwerkkommunikation
21 Debugging
22 Distribution von Python-Projekten
23 Optimierung
24 Grafische Benutzeroberflächen
25 Python als serverseitige Programmiersprache im WWW mit Django
26 Anbindung an andere Programmiersprachen
27 Insiderwissen
28 Zukunft von Python
A Anhang
Stichwort

Download:
- ZIP, ca. 4,8 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Python von Peter Kaiser, Johannes Ernesti
Das umfassende Handbuch - Aktuell zu Python 2.5
Buch: Python

Python
gebunden, mit CD
819 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1110-9
Pfeil 11 Modularisierung
  Pfeil 11.1 Einbinden externer Programmbibliotheken
  Pfeil 11.2 Eigene Module
    Pfeil 11.2.1 Modulinterne Referenzen
  Pfeil 11.3 Pakete
    Pfeil 11.3.1 Importieren aller Module eines Pakets
    Pfeil 11.3.2 Relative Importanweisungen
  Pfeil 11.4 Built-in Functions

»Divide et impera!« – Julius Caesar

11 Modularisierung

Unter Modularisierung versteht man die Aufteilung des Quelltextes in einzelne Teile, sogenannte Module. Grundsätzlich gibt es zwei Arten von Modulen:

Zum einen kann jedes Python-Programm sogenannte Bibliotheken (engl. Libraries) einbinden. Eine Bibliothek dient häufig einem ganz bestimmten Zweck, wie etwa der Arbeit mit Dateien eines bestimmten Dateiformats, und stellt üblicherweise Datentypen oder Funktionen bereit, die nach dem Einbinden verwendet werden können. Es ist möglich, eigene Bibliotheken zu schreiben oder eine Bibliothek eines Drittanbieters zu installieren. Ein gutes Argument für Python ist die umfangreiche Standardbibliothek, die im Lieferumfang enthalten ist. Sie bietet eine hohe Grundfunktionalität, die in jeder Python-Umgebung verfügbar ist.

Die zweite Möglichkeit zur Modularisierung sind lokale Module. Darunter versteht man die Kapselung einzelner Programmteile – auch hier üblicherweise Datentypen oder Funktionen – in eigene Programmdateien. Diese Dateien können wie Bibliotheken eingebunden werden, sind aber in keinem anderen Python-Programm verfügbar. Diese Form der Modularisierung hilft bei der Programmierung ungemein, da sie dem Programmierer die Möglichkeit gibt, sehr langen Programmcode überschaubar auf verschiedene Programmdateien aufzuteilen.


Galileo Computing - Zum Seitenanfang

11.1 Einbinden externer Programmbibliotheken  topZur vorigen Überschrift

Eine Bibliothek, sei es ein Teil der Standardbibliothek oder eine selbst geschriebene, kann mithilfe der import-Anweisung eingebunden werden. Wir werden in den Beispielen hauptsächlich das Modul math der Standardbibliothek verwenden. Das ist ein Modul, das mathematische Funktionen wie sin oder cos sowie mathematische Konstanten wie pi bereitstellt. Um sich diese Funktionalität in einem Programm zunutze machen zu können, ist folgende import-Anweisung nötig:

import math

Eine import-Anweisung besteht aus dem Schlüsselwort import, gefolgt von einem Modulnamen. Es können mehrere Module gleichzeitig eingebunden werden, indem diese, durch Kommata getrennt, hinter das Schlüsselwort geschrieben werden:

import math, random

Dies ist äquivalent zu:

import math 
import random

Obwohl eine import-Anweisung prinzipiell überall im Quellcode stehen kann, ist es der Übersichtlichkeit halber sinnvoll, alle Module zu Beginn des Quelltextes einzubinden.

Nachdem eine Bibliothek eingebunden wurde, wird für diese ein neuer Namensraum mit dem Namen der Bibliothek erstellt. Über diesen Namensraum sind alle Funktionen, Datentypen und Konstanten der Bibliothek im Programm nutzbar. Mit einem Namensraum kann wie mit einer Instanz umgegangen werden, und die Funktionen der Bibliothek können wie Methoden des Namensraums verwendet werden. So bindet folgendes Beispielprogramm die Bibliothek math ein und berechnet den Sinus von der Kreiszahl π :

import math 
print math.sin(math.pi)

Es ist möglich, den Namen des Namensraums durch eine import/as-Anweisung festzulegen:

import math as mathematik 
print mathematik.sin(mathematik.pi)

Beachten Sie, dass dieser Name keine zusätzliche Option ist, sondern das Modul math nun ausschließlich über den Namensraum mathematik erreichbar ist.

Des Weiteren kann die import-Anweisung so verwendet werden, dass kein eigener Namensraum für die eingebundene Bibliothek erzeugt wird, sondern alle Elemente dieser Bibliothek im globalen Namensraum des Programms zur Verfügung stehen:

from math import * 
print sin(pi)

Wenn die import-Anweisung in dieser Weise verwendet wird, sollten Sie beachten, dass keine Referenzen, Funktionen oder Instanzen des einzubindenden Moduls in den aktuellen Namensraum importiert werden, wenn sie mit einem Unterstrich beginnen. Diese Elemente eines Moduls werden als privat und damit als modulintern angesehen.


Hinweis
Der Sinn von Namensräumen ist es, thematisch abgegrenzte Bereiche, also zum Beispiel eine Bibliothek, zu kapseln und über einen gemeinsamen Namen anzusprechen. Wenn Sie den kompletten Inhalt einer Bibliothek in den globalen Namensraum eines Programms einbinden, kann es vorkommen, dass die Bibliothek mit eventuell vorhandenen Referenzen interferiert. In einem solchen Fall werden die bereits bestehenden Referenzen kommentarlos überschrieben, wie das folgende Beispiel zeigt:

>>> pi = 1234 
>>> pi 
1234 
>>> from math import * 
>>> pi 
3.1415926535897931
Aus diesem Grund ist es immer sinnvoll, eine Bibliothek, wenn sie vollständig eingebunden wird, in einem eigenen Namensraum zu kapseln und damit die Anzahl der im globalen Namensraum eingebundenen Elemente möglichst gering zu halten.


Im Hinweiskasten wurde gesagt, dass man die Anzahl der in den globalen Namensraum importierten Objekte möglichst gering halten sollte. Aus diesem Grund ist die oben geschriebene Form der from/import-Anweisung nicht gerade praktikabel. Es ist aber möglich, anstatt des Sterns eine Liste von zu importierenden Elementen der Bibliothek anzugeben:

from math import sin, pi 
print sin(pi)

In diesem Fall werden ausschließlich die Funktion sin und die Konstante pi in den globalen Namensraum importiert. Auch hier ist es möglich, durch ein dem Namen nachgestelltes as einen eigenen Namen festzulegen:

from math import sin as hallo, pi as welt 
print hallo(welt)

So viel zum Einbinden externer Bibliotheken. Sie werden die Standardbibliothek von Python im dritten Teil dieses Buches noch ausführlich kennenlernen.



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: Python






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

 Buchtipps
Zum Katalog: Linux






 Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Praxisbuch Web 2.0






 Praxisbuch Web 2.0


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Praxisbuch Objektorientierung






 Praxisbuch Objektorientierung


Zum Katalog: Einstieg in SQL






 Einstieg in SQL


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo