Stronę tą wyświetlono już: 4435 razy
Generatory są dość specyficznym tworem, który do tej pory zaobserwowałem jedynie w Pythonie. Są one podobne do funkcji, jednakże nie są one tym samym co zwykła Pythonowa funkcja. Dobrym przykładem generatora, który jest nagminnie wykorzystywany w Pythonie jest range.
Żeby zrozumieć, jak działają generatory najlepiej jest rzucić okiem na przykład własnoręcznie utworzonego generatora:
Słowo kluczowe yield (z angielskiego: krzyczeć) mówi nam, że generator wyrzuca pewną wartość, ale jego działanie nie kończy się na tym. Działanie generatora kończy się dopiero wtedy gdy (w tym przypadku) spełniony jest warunek angle_begin != angle_end.
Wynikiem działania powyższego kodu będzie wyświetlenie elementów listy, które zawierają wartości typu float będące sinusem kątów z zakresu podanego na wejście funkcji. Krok tego zakresu to domyślna wartość argumentu step generatora c_sin.