Vorkurs Informatik - WS 2012/13
Vorsemesterkurs Informatik
Praktischer Teil
WS2012/13
9. Oktober 2012
Klassen und Objekte
Vorkurs Informatik - WS 2012/13
Was ist ein Objekt?
>>> 4
>>> „Hallo!‟
>>> True
>>> [1,2,3,4,5]
Was ist das hier eigentlich?
Daten? Datentypen?
Definition
Ein Objekt ist ein Baustein der objektorientierten Programmierung.
Ein Objekt speichert bestimmte Daten und erlaubt bestimmte Operationen mit diesen Daten.
>>> „Hallo‟ + „ world!‟
„Hallo world!‟
Vorkurs Informatik - WS 2012/13
Attribute und Methoden
Definition
Ein Objekt ist ein Baustein der objektorientierten Programmierung.
Ein Objekt speichert bestimmte Daten und erlaubt bestimmte Operationen mit diesen Daten.
Die gespeicherten Daten heißen Attribute.
Die für ein Objekt erlaubte Operationen heißen Methoden.
Vorkurs Informatik - WS 2012/13
(String) Methoden
In einem String etwas ersetzen:
>>> “Hello world!”.replace(“Hello”, “Goodbye”)
„Goodbye world!‟
Herausfinden, ob in dem String eine Zahl steht:
>>> “333”.isdecimal()
True
Parameter
Rückgabewert der Methode
Vorkurs Informatik - WS 2012/13
Methode vs. Funktion
>>> len(“string”)
>>> “333”.isdecimal()
Die Funktion bekommt das Objekt als Parameter
Die Methode ist von dem Objekt abhängig, das vor dem Punkt steht
Vorkurs Informatik - WS 2012/13
Wofür Klassen? (1/3)
Funktionale Programmierung wird bei großen Programmen
unübersichtlich und redundant
z.B. Bankautomat und Datenbank des Finanzinstituts
Daher ist eine Abstraktion notwendig
Lösung für den Bankautomat:
Modelliere ein Bankkonto mit einer Klasse
Definition
Eine Klasse ist die Schablone eines Objekts. Sie definiert seine Attribute und Methoden.
Vorkurs Informatik - WS 2012/13
Modelliere ein Bankkonto:
Aufbau einer Klasse
Attribute
Name
Methoden
Vorkurs Informatik - WS 2012/13
Klassen: Zusammenfassung
class Account: __number = 0 __transactions = [] owner = '' def __init__(self, no, owner_name): self.__number = no self.owner = owner_name def deposit(self, value): self.__transactions.append(value) def withdraw(self, value): self.__transactions.append(-value) def get_balance(self): return sum(self.__transactions) def __str__(self): return "Kontonummer: {}, Inhaber: {}, Kontostand: {}“ .format(self.__number, self.owner, self.get_balance())
Attribute
Konstruktor
Methode
Vorkurs Informatik - WS 2012/13
Dateien lesen (1/2)
Der Befehl open(“dateiname.txt”)
öffnet eine Datei. Einfach oder?
Durch die Zeilen einer Datei kannst du wie
durch eine Liste mit der for-Schleife iterieren:
>>> with open(“hallo.txt”) as file:
for line in file:
print(line)
Vorkurs Informatik - WS 2012/13
Dateien lesen (2/2)
Wollen wir nicht eine ganze Zeile lesen, können wir die read()-Methode
der Datei verwenden:
>>> with open(“hallo.txt”) as file:
file.read(5)
„Hallo‟
Dabei werden genau 5 erste Zeichen ausgegeben.
Beim erneuten Aufruf der read()-Methode werden die nachfolgenden
Zeichen ausgegeben.
Vorkurs Informatik - WS 2012/13
Dateien schreiben (1/2)
Versuchen wir aber in die Datei zu schreiben…
Vorkurs Informatik - WS 2012/13
Dateien schreiben (2/2)
Der Befehl open(“dateiname.txt”) öffnet eine Datei im Lesemodus.
Damit wir schreiben können, müssen wir das Python ausdrücklich sagen:
>> with open(“hallo.txt”, “a”) as file:
file.write(“Hello world!”)
Dabei wird der neue Inhalt am Ende hinzugefügt.
Möchte man das am Anfang oder an der beliebigen Stelle machen:
http://docs.python.org/release/3.3.0/library/functions.html?highlight=open#open