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.
Jakie jest użycie yieldsłowa kluczowego w Pythonie i co robi? Na przykład próbuję zrozumieć ten kod 1 : def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild A to jest osoba dzwoniąca: result, candidates …
Kiedy należy używać wyrażeń generatora, a kiedy używać wyrażeń list w Pythonie? # Generator expression (x*2 for x in range(256)) # List comprehension [x*2 for x in range(256)]
Próbuję wygenerować nowy model i zapomnieć o składni odwoływania się do identyfikatora innego modelu. Sam bym to sprawdził, ale nie znalazłem wśród wszystkich moich linków dokumentacji Ruby on Rails, jak znaleźć ostateczne źródło. $ rails g model Item name:string description:text(i tu albo reference:productalbo references:product). Ale lepszym pytaniem jest, gdzie i …
Mam bardzo duży plik 4 GB i kiedy próbuję go odczytać, komputer zawiesza się. Więc chcę czytać go kawałek po kawałku, a po przetworzeniu każdego elementu przechowywać przetworzony kawałek w innym pliku i czytać następny kawałek. Czy istnieje jakaś metoda na yieldte elementy? Chciałbym mieć leniwą metodę .
tj. jak to wyrazić: function *(next) {} ze strzałkami. Wypróbowałem wszystkie kombinacje, jakie mogłem wymyślić, i nie mogę znaleźć na to żadnej dokumentacji. (obecnie używa węzła v0.11.14)
Niedawno natknąłem się na ten kod: function xrange($min, $max) { for ($i = $min; $i <= $max; $i++) { yield $i; } } Nigdy wcześniej nie widziałem tego yieldsłowa kluczowego. Próbuję uruchomić kod Błąd analizy: błąd składni, nieoczekiwany T_VARIABLE w linii x Czym jest to yieldsłowo kluczowe? Czy to w …
W tej chwili czytam książkę kucharską Pythona i obecnie patrzę na generatory. Trudno mi się odwrócić. Skoro pochodzę z języka Java, czy istnieje odpowiednik języka Java? Książka mówiła o „producencie / konsumentie”, ale kiedy słyszę, że myślę o wątkach. Co to jest generator i dlaczego miałbyś go używać? Oczywiście bez …
Zaczynam uczyć się Pythona i natknąłem się na funkcje generatora, te, które zawierają w sobie instrukcję return. Chcę wiedzieć, jakie rodzaje problemów te funkcje są naprawdę dobre w rozwiązywaniu.
Mam funkcję generatora, jak poniżej: def myfunct(): ... yield result Zwykłym sposobem wywołania tej funkcji byłoby: for r in myfunct(): dostuff(r) Moje pytanie: czy istnieje sposób na uzyskanie tylko jednego elementu z generatora, kiedy tylko chcę? Na przykład chciałbym zrobić coś takiego: while True: ... if something: my_element = pick_just_one_element(myfunct()) …
Chcę zmienić następujący kod for directory, dirs, files in os.walk(directory_1): do_something() for directory, dirs, files in os.walk(directory_2): do_something() do tego kodu: for directory, dirs, files in os.walk(directory_1) + os.walk(directory_2): do_something() Dostaję błąd: nieobsługiwane typy operandów dla +: „generator” i „generator” Jak połączyć dwa generatory w Pythonie?
Jak w Pythonie sprawdzić, czy obiekt jest obiektem generatora? Próbuję tego - >>> type(myobject, generator) podaje błąd - Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'generator' is not defined (Wiem, że mogę sprawdzić, czy obiekt ma nextmetodę, aby był generatorem, ale chcę mieć jakiś …
Typowy sposób na zapętlenie xczasów w JavaScript to: for (var i = 0; i < x; i++) doStuff(i); Ale nie chcę używać ++operatora ani w ogóle mieć żadnych zmiennych zmiennych. Czy jest więc sposób w ES6 na zapętlenie xczasów w inny sposób? Uwielbiam mechanizm Ruby: x.times do |i| do_stuff(i) end …
Mam obiekt generatora zwrócony przez wielokrotną wydajność. Przygotowanie do wywołania tego generatora jest raczej czasochłonną operacją. Dlatego chcę kilka razy ponownie użyć generatora. y = FunctionWithYield() for x in y: print(x) #here must be something to reset 'y' for x in y: print(x) Oczywiście myślę o skopiowaniu treści na prostą …
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.