Python - Programmierung

Werbung
Python
„Module“
Anja Aue | 12.09.16
Modularisierung
 Die Aufgabe wird in verschiedene kleine Aufgaben zerlegt.
 Logische Gliederung von Programmteilen mit Hilfe von
Namensräumen.
 Aufteilung von einem sehr großen Programm in mehrere
Quelltext-Dateien.
Programmiersprache Python
Seite 2
Bibliotheken
 Werkzeugkasten aus Datentypen und Funktionen.
 Die Standardbibliothek wird bei der Installation von Python
automatisiert zur Verfügung gestellt.
 Selbstgeschriebene Werkzeugkästen oder von Drittanbietern.
 Einbindung mit dem Schlüsselwort import.
Programmiersprache Python
Seite 3
Hilfe zur Standardbibliothek
 Sortiert nach Kategorien. https://docs.python.org/3.3/library/.
 Alphabetisch sortiert. https://docs.python.org/3/pymodindex.html.
Programmiersprache Python
Seite 4
Import von Bibliotheken
import math
def getSinus():
sinus = math.sin(math.pi / 2)
print("Sinus: ", sinus)
beispiel\kapitel012_Modul\standardLibrary.py
Programmiersprache Python
Seite 5
import-Anweisung
import
math
import
Bibliothek
 Bereitstellung der Funktionen, Methoden und Datentypen der
Standardbibliothek math.
 Mit Hilfe des Schlüsselwortes import wird eine
Standardbibliothek eingebunden.
Programmiersprache Python
Seite 6
Aufruf von Funktionen aus einer Bibliothek
math
.
Bibliothek .
sin
( math.pi / 2 )
Funktion
( parameter )
 Der Aufruf der Funktionen in der Bibliothek erfolgt über den
vollen Namen.
 Links vom Punktoperator: In welcher Bibliothek ist die Funktion
definiert?
 Rechts vom Punktoperator: Welche Funktion wird aufgerufen?
Programmiersprache Python
Seite 7
Import von Funktionen oder Methoden
form math import sin, pi
def getSinus():
sinus = sin(pi / 2)
print("Sinus: ", sinus)
beispiel\kapitel012_Modul\standardLibrary.py
Programmiersprache Python
Seite 8
import-Anweisung
from
math
import
sin
,
pi
from
Bibliothek
import
Funktion
,
Funktion
 Aus einer Bibliothek werden Funktionen importiert.
 Es werden nur die benötigten Funktionen, Methoden und
eingebunden.
 Die zu importierenden Funktionen werden durch ein Kommata
getrennt.
Programmiersprache Python
Seite 9
Aufruf der importierten Funktionen
sin
( math.pi / 2 )
Funktion
( parameter )
 Die importierte Funktion wird mit dem Namen aufgerufen.
 Der Aufruf der Funktion entspricht dem Funktionskopf.
Programmiersprache Python
Seite 10
Modul
 Datei mit der Endung „.py“
 Module enthalten Code, geschrieben in einer
Programmiersprache.
 Module können Klassen, Funktionen und so weiter enthalten.
Programmiersprache Python
Seite 11
Import von eigenen Modulen
import modul_classKreis
def KreisBerechnung():
kreis = modul_classKreis.ClsKreis(3)
print("Radius: ", kreis.getRadius())
print("Umfang: ", kreis.getUmfang())
print("Fläche: ", kreis.getFlaeche())
beispiel\kapitel012_Modul\modul_Start.py
Programmiersprache Python
Seite 12
import-Anweisung
import
modul_classKreis
import
Datei
 Mit Hilfe des Schlüsselwortes import wird eine Datei mit der
Endung *.py eingebunden.
 Module werden zuerst im aktuellen Verzeichnis gesucht.
Programmiersprache Python
Seite 13
Wo werden Module gesucht?
import sys
for verzeichnis in sys.path:
print(verzeichnis)
 Die Bibliothek sys definiert system-spezifische Funktionen,
Datentypen etc.
 In diesem Beispiel werden mit Hilfe von sys.path eine Liste aller
Pfade zu Modulen ausgegeben.
Programmiersprache Python
Seite 14
Dokumentation von eigenen Modulen
from math import pi, pow
'''Kreis-Berechnungen in Abhängigkeit eines Radius'''
class ClsKreis(object):
__anzahl = 0
''' Default-Radius = 1'''
def __init__(self, radius = 1):
self.__radius = radius
ClsKreis.__anzahl += 1
beispiel\kapitel012_Modul\modul_classKreis.py
Programmiersprache Python
Seite 15
Docstrings
 Kommentare, die mit drei Apostrophs beginnen und enden.
 Blockkommentare am Beginn eines Moduls.
 Blockkommentare in der ersten Zeile eines Funktions- oder
Methodenrumpfes.
Programmiersprache Python
Seite 16
Aufruf der Hilfe
>>> help(modul_classKreis)
 Der Funktion help() wird als Argument der Name eines Moduls
übergeben.
 Zu dem übergebenen Modul wird die Hilfe angezeigt.
 Hinweis: Vor dem Aufruf einer Hilfe zu eigenen Module müssen
diese mit Hilfe des Schlüsselwortes import zuerst geladen
werden.
Programmiersprache Python
Seite 17
Namensraum
 Container, in dem eine Methode, Funktion und so weiter gültig
ist.
 Namensräume vermeiden Namenskonflikte bei Funktionen,
Variablen etc.
Programmiersprache Python
Seite 18
Qualifizierte Namen
modul_classKreis .
ClsKreis(3)
math
.
pi
namespace
.
attribut
 Der Name des Moduls wird mit einem darin definierten Element
durch den Punkt verbunden.
Programmiersprache Python
Seite 19
Wo ist das Element definiert?
modul_classKreis .
math
.
namespace
.
 Links vom Punkt wird der Namensraum angegeben.
 Als Platzhalter für einen Namensraum wird der Name eines
Moduls oder einer Bibliothek genutzt.
 In diesem Namensraum ist das gesuchte Element definiert. Es
ist dort gültig.
Programmiersprache Python
Seite 20
Welches Element wird angesprochen?
.
ClsKreis(3)
.
pi
.
attribut
 Rechts vom Punkt steht eine Name einer Variablen oder eines
Attributs. Der Wert der Variablen soll gelesen oder modifiziert
werden,
 Rechts vom Punkt kann der Name einer Klasse stehen. Mit
Hilfe des qualifizierten Namens wird eine Instanz erzeugt.
Programmiersprache Python
Seite 21
Unqualifizierte Namen
ClsKreis(3)
pi
attribut
 Es wird nur der Namen des Elements ohne Angabe des
Namensraumes genutzt.
Programmiersprache Python
Seite 22
Objektattribute von der Klasse ...
from math import pi, pow
import modul_classPunkt
class ClsKreis(object):
__anzahl = 0
def __init__(self, radius = 1, x = 0, y = 0):
self.__radius = radius
self.__position = modul_classPunkt.ClsPunkt(x, y)
ClsKreis.__anzahl += 1
beispiel\kapitel012_Modul\modul_classKreis.py
Programmiersprache Python
Seite 23
… definieren
def __init__(self, radius = 1, x = 0, y = 0):
self.__position = modul_classPunkt.ClsPunkt(x, y)
 Das Objektattribut __position ist vom Typ der Klasse ClsPunkt.
Ein Objektattribut kann eine Referenz auf ein Objekt einer
anderen Klasse speichern.
 Die Instanz wird mit Hilfe des qualifizierten Namens erzeugt.
Die Klasse ClsPunkt ist in dem Modul modul_classPunkt definiert.
In den runden Klammern werden die Argumente zum
Initialisieren der Objektattribute der Klasse ClsPunkt übergeben.
Programmiersprache Python
Seite 24
… und nutzen
def printInformation(self):
koordinaten = self.__position.getPosition()
xKoordinate = str(koordinaten[0])
yKoordinate = str(koordinaten[1])
 Objektattribute, die eine Instanz einer Klasse sind, können
Methoden aufrufen.
 Die Instanz und die Methode aus der Klasse werden durch den
Punktoperator verbunden.
Programmiersprache Python
Seite 25
Herunterladen