Python Tutorial
- jetzt Python programmieren lernen

Funktionen und Methoden bei Variablen/Strings

Wir haben im letzten Kapitel Variablen kennen gelernt. In einer Variablen kann also ein Wert abgelegt und wieder ausgegeben werden.

Über die Funktion print() erhalten wir den abgelegten Inhalt einer Variablen angezeigt.

kursname = 'Python-lernen.de'
print(kursname)

Funktionen bei Variablen

Einer Funktion wird also nach dem Funktionsnamen in den folgenden Klammern Werte (und Anweisungen) mit übergeben. Unserer Funktion print(kursname) bekommt also in der Klammer die Variable mit übergeben und weiß somit, was auf dem Bildschirm ausgegeben werden soll.

Es muss allerdings nicht immer einer Funktion weitere Werte und Anweisungen in der Klammer mit übergeben werden. Wird print() einfach mit einer leeren Klammer aufgerufen, dann erhalten wir als Ergebnis eine Leerzeile ausgegeben.

Schauen wir uns eine andere Funktion neben print() an. Zum Bestimmen der Länge eines Strings gibt es die Funktion len(x). Als Information erhalten wir hier die Anzahl der enthaltenen Zeichen. Bei len handelt es sich um die Abkürzung des englischen Worts „length“. Allerdings müssen wir irgendwas mit dieser Information machen. Lassen wir uns diese ausgeben:

kursname = 'Python-lernen.de'
print(len(kursname))

Funktionen können also innerhalb anderer Funktionen genutzt werden.

Funktionen sind unabhängig. Wir können die Funktionen nicht nur für Strings nutzen!

Funktionen sind soweit einfach verständlich. Was aber sind Methoden und was können wir damit bei Variablen anstellen?

Methoden bei Variablen/Strings

Ändern wir unsere Sichtweise. Wenn wir unsere Variable als ein Objekt ansehen, dann kann dieses Objekt verschiedene Möglichkeiten bieten. Ich schreibe hier bewusst Möglichkeiten. Warum? Wenn wir es aus objektorientierter Sicht ansehen, stecken wir schon voll in der objektorientierten Programmierung (OOP). Diese wird später im Detail besprochen. Grundlegend ist, dass bei der OOP die Punktschreibweise genutzt wird. Wir haben unser Objekt, was an erster Stelle steht und wollen hier für dieses Objekt etwas abfragen bzw. eine festgelegte Aktion ausführen: Die Aktion wird über einen Punkt direkt dahinter gepackt.

objektname.aktion

Beispielsweise könnten wir unseren in der Variablen gespeicherten Text komplett in Kleinschreibung erhalten.

kursname = 'www.Python-lernen.de'
kursname.lower()

Wer sich jetzt denkt, das fühlt sich doch an wie eine Funktion, die einfach alles in Kleinbuchstaben umwandelt, liegt nicht wirklich falsch. Es ist einfach eine andere Sichtweise – sprich die objektorientierte Sichtweise. Und somit wird die objektorientierte Schreibweise notwendig.

Die wirkliche Kunst liegt darin zu wissen, welche Objekte welche Möglichkeiten (sprich Methoden) bieten.

Diese Hilfe können wir über die Anweisung help(str) anfordern für unsere Strings (was unsere Variablen sind). Hier kommt dann ein sehr umfangreicher Text:

>>> help(str)

Help on class str in module builtins:

class str(object)
| str(object='') -> str
| str(bytes_or_buffer[, encoding[, errors]]) -> str
|
| Create a new string object from the given object. If encoding or
| errors is specified, then the object must expose a data buffer
| that will be decoded using the given encoding and error handler.
| Otherwise, returns the result of object.__str__() (if defined)
| or repr(object).
| encoding defaults to sys.getdefaultencoding().
| errors defaults to 'strict'.
|
| Methods defined here:
...

Zum Scrollen die Pfeiltasten nutzen, zum Beenden der Hilfe einfach „q“ drücken.

Möchte man eine kürzere Übersicht, was uns Strings (sprich „str“) bieten, dann können wir diese über dir(str) erhalten:

>>> dir(str) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

Alles ohne Unterstriche sind Methoden, die für String-Objekte zur Verfügung stehen. Hier taucht unser lower aus dem letzten Beispiel auf.

Und wollen wir nur genauere Hilfe zu der Methode lower dann bekommen wir diese über die Anweisung help(str.lower)

Help on method_descriptor:

lower(self, /)
Return a copy of the string converted to lowercase.

Das war jetzt ein größerer Brocken. Wer unseren oberen Code einmal getestet hat, wird sich wundern, dass keine Ausgabe in Kleinschreibung erfolgt ist. Das ist auch korrekt so. Die Methode lower() wandelt nur in Kleinschreibung um. Wollen wir eine Ausgabe, benötigen wir wie gewohnt unsere print()-Anweisung:

kursname = 'www.Python-lernen.de'
print(kursname.lower())

Am Rande bemerkt: Unser Inhalt der Variable „kursname“ wird nicht verändert! Diese bleibt unberührt. Einfach mal folgenden Code testen:

kursname = 'www.Python-lernen.de'
print(kursname.lower())
print(kursname)

Zusammengefasst:
Unterschied zwischen Funktionen und Methoden

Funktionen können direkt über ihren Namen aufgerufen werden – Methoden dagegen benötigen immer ihr Objekt.

Die Schreibweise:
Funktionen: funktionsname()
Methoden: objekt.methode()

Funktionen sind unabhängig. Einer Funktion kann beliebiges übergeben werden, mit dem dann weitergearbeitet wird. Methoden sind festgelegt – sprich jedes Objekt verfügt über bestimmte Möglichkeiten (sprich Methoden). Die Kunst ist nur zu wissen, was es an Methoden bereits „standardmäßig“ gibt.

Tipp für Einsteiger

In den folgenden Unterkapiteln schauen wir uns Variablen (100 % korrekt für Strings) an, welche Methoden existieren und wie diese angewendet werden können. Als Einsteiger kann man die Unterkapitel überfliegen, wird sich aber besser später hier nochmals genauer die Möglichkeiten ansehen. Bevor man also durch viele kleine Möglichkeiten erschlagen wird, bitte erst den grundlegenden Überblick verschaffen und im nächsten Kapitel „Operatoren für Strings“ (operatoren-strings.htm) weitermachen und sich später diese Unterkapitel ansehen!

Weiterempfehlen • Social Bookmarks • Vielen Dank

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Das neue E-Book zum Kurs gibt es zum Kaufen.

Sie können uns auch eine Spende über PayPal zukommen lassen.

Bestellen Sie Bücher über folgenden Link bei Amazon:
Bücher über Python

Vielen Dank für Ihre Unterstützung