© Liashko/Shutterstock.com
Interview mit Oz Tiram

Python erfreut sich wachsender Beliebtheit


Entwickler Magazin Spezial: In deinem Workshop auf dem Python Summit 2019 hast du Python’s Iterables, Iterators und Generators behandelt. Kannst du kurz erläutern, was das Besondere dabei ist?

Oz Tiram: Nun, eigentlich nichts! Fast alle Programmiersprachen verfügen über ähnliche Konstrukte und wenn nicht, dann ist es einfach, sie zu implementieren. Das Coole an Python ist aber, dass die Sprache schon so viel von Haus aus mitbringt. Um damit produktiv zu arbeiten, muss man solche Dinge wie Iterables, Iterators und Generators nicht selbst implementieren.

Jedes beliebige Python-Objekt, das andere Objekte beinhaltet, ist iterierbar. Natürlich ist das bei anderen Sprachen auch so – also keine Überraschung hier. Computerprogramme sind nun einmal dazu da, um repetitive Aufgaben für uns zu erledigen. Deshalb braucht jede Sprache einen Mechanismus, um eine Aktion zu wiederholen, bis sie nicht mehr gebraucht wird. Eine Art, das zu realisieren, ist das Wiederholen einer Aktion auf eine Menge von Elementen. In menschlicher Sprache formuliert wäre das: „Für jedes Element aus einer Menge an Elementen: Tue etwas mit dem Element.“

In Python wird dieser Satz so ausgedrückt:

>>> for item in BagOfItems: ... do_something(item)

In diesem Fall ist BagOfItems ein Iterable. In meinem Workshop auf dem Python Summit haben wir uns beispielsweise angesehen, wie so eine BagOfItems gebaut wird und wie Python weiß, wann es aufhören soll, wenn BagOfItems keine Elemente mehr enthält.

Iteratoren sind eine spezielle Art von BagOfItems, bei der wir auf jedes Item einzeln zugreifen können. Normalerweise wollen wir, wenn wir mit einer Aufgabe begonnen haben, diese auch fertig stellen. Nehmen wir zum Beispiel statt BagOfItems einmal BagOfBalls – also einen Sack voller Bälle. Wenn ein Mensch nun alle roten Bälle in dem Sack finden möchte, dann könnte er einen Ball aus dem Sack nehmen und prüfen, ob dieser rot ist, und gegebenenfalls in den Korb für rote Bälle werfen. Bälle einer anderen Farbe kämen entsprechend in andere Körbe. Ein Mensch kann hier einfach einmal eine Kaffeepause einlegen und dann weiter machen. Der Sack ist der Iterator, weil wir ein Element nach dem anderen aus ihm nehmen können. Ein Iterable erlaubt es hingegen nur, alle Bälle auf einmal ohne Pause zu prüfen. Wenn es also darum geht, bestimmte Aufgaben mehrfach auszuführen, brauchen wir in der Praxis manchmal eine Pause.

Ein Generator ist, einfach gesagt, eine bestimmte Art von Funktion, die uns dabei hilft, iterierbare E...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang