Generator jest uogólnieniem podprogramu, używanym głównie w celu uproszczenia pisania iteratorów. Instrukcja yield w generatorze nie określa procedury, do której należy przejść, ale raczej przekazuje wartość z powrotem do procedury nadrzędnej.
Jest to raczej odwrotność do czego można używać funkcji generatora w języku Python? : generatory Pythona, wyrażenia generatora i itertoolsmoduł to niektóre z moich ulubionych funkcji w dzisiejszym Pythonie. Są szczególnie przydatne podczas konfigurowania łańcuchów operacji do wykonania na dużym stosie danych - często używam ich podczas przetwarzania plików DSV. …
Właśnie czytałem ten fantastyczny artykuł « Generatory » i wyraźnie podkreśla tę funkcję, która jest funkcją pomocniczą do obsługi funkcji generatora: function async(makeGenerator){ return function () { var generator = makeGenerator.apply(this, arguments); function handle(result){ // result => { done: [Boolean], value: [Object] } if (result.done) return Promise.resolve(result.value); return Promise.resolve(result.value).then(function (res){ …
Jak jedna pętla może przejść przez generator? Myślałem o tym w ten sposób: gen = function_that_returns_a_generator(param1, param2) if gen: # in case the generator is null while True: try: print gen.next() except StopIteration: break Czy jest bardziej pytoniczny sposób?
Chcę przeanalizować 2 generatory (potencjalnie) różnej długości za pomocą zip: for el1, el2 in zip(gen1, gen2): print(el1, el2) Jeśli jednak gen2ma mniej elementów, jeden dodatkowy element gen1jest „konsumowany”. Na przykład, def my_gen(n:int): for i in range(n): yield i gen1 = my_gen(10) gen2 = my_gen(8) list(zip(gen1, gen2)) # Last tuple is …
Mam generator, generatora także wygodną metodę - generate_all. def generator(some_list): for i in some_list: yield do_something(i) def generate_all(): some_list = get_the_list() return generator(some_list) # <-- Is this supposed to be return or yield? Czy generate_all returnlub yield? Chcę, aby użytkownicy obu metod używali tego samego, tj for x in generate_all() …
Klasa collections.defaultdict przyjmuje domyślną fabrykę, służącą do generowania wartości domyślnej. Jeśli wartości zawarte w dictpodobnym obiekcie powinny mieć wartość domyślną False, instancję można utworzyć jako: d_false = defaultdict(bool) Jaki jest najbardziej pytonowy sposób osiągnięcia tego samego dla wartości domyślnej True ? Innymi słowy, czy jest zwracany standardowy obiekt na żądanie …
Różnica pomiędzy returni yieldwydawało się oczywiste, dopóki nie zorientowali się tam także yield fromi możliwość łączenia obu returni yieldw tej samej funkcji! Rozumiałem, returnże wszystko po tym nie zostało wykonane, prawda? Jednak: function generate(): iterable { return [1, 2, 3]; } foreach (generate() as $value) { echo $value; } Produkuje: …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.