Aktywne Wpisy
Helonzy +45
Często zastanawiam się, dlaczego dochodzi do tak wielu potrąceń na pasach dla pieszych. Przecież wystarczy chwilę poczekać, aż samochody zwolnią, zanim wejdziemy na jezdnię.
Nawet jeśli pieszy ma pierwszeństwo na pasach, nie warto z tego korzystać zbyt pewnie, bo nie mamy szans w starciu z pojazdem. Jeżeli zauważę, że samochód nie zwalnia lub jego prędkość stanowi poważne zagrożenie w razie zderzenia, nie wchodzę na pasy. Zachęcam wszystkich do podobnego podejścia – warto
Nawet jeśli pieszy ma pierwszeństwo na pasach, nie warto z tego korzystać zbyt pewnie, bo nie mamy szans w starciu z pojazdem. Jeżeli zauważę, że samochód nie zwalnia lub jego prędkość stanowi poważne zagrożenie w razie zderzenia, nie wchodzę na pasy. Zachęcam wszystkich do podobnego podejścia – warto
ChlopoRobotnik2137 +507
Palacze to podludzie…sytuacja z przed chwili , chuop po 40 pali cienkiego papierosa czem prędzej na peronie żeby jak najwiecej nawciagac się. Pociąg już jedzie a pet nadal cały. Zaciąga się jak szalony by resztę pęta wrzucić na tory… już nie wspomnę o toaletach na lotniskach gdzie wiecznie śmierdzi fajkami bo jaśniepan nie umie wytrzymać bez fajki kilka godzin. No podludzie
#papierosy #fajki #palenie #tyton
#papierosy #fajki #palenie #tyton
def foo(value):
while True:
value = (yield value)
bar = foo(1)
print(next(bar))
print(next(bar))
print(bar.send(2))
output:
1
None
2
https://onecompiler.com/python/3x4zmxxs7
#programowanie
1. Definiujesz funkcję
foo
przyjmującą jedno wejście,value
.2. Wewnątrz tej funkcji, mamy nieskończoną pętlę
while True
.3. W pętli jest instrukcja
value = (yield value)
.yield
jest specjalnym słowem kluczowym w Pythonie, które jest używane do generowania wartości z funkcji. Funkcje, które używająyield
, są nazywane generatorami.yield
zwraca wartośćvalue
i jednocześnie wstrzymuje wykonywanie funkcji do momentu, gdy generator zostanie ponownie wywołany.4. Tworzysz generator
Czy w takim razie 'send' działa trochę jak 'next' z tą różnicą, że do send można przekazać parametr na wejście przed wywołaniem generatora?
send
inext
są podobne w tym sensie, że obie funkcje wznawiają wykonywanie generatora od miejsca, w którym został ostatnio wstrzymany (zwykle przy użyciuyield
), aż do następnegoyield
lub do końca funkcji generatora.Różnica polega na tym, że:
-
next(generator)
wznawia generator i przekazuje wartośćNone
do aktualnegoyield
.-
generator.send(value)
wznawia generator i przekazuje wartośćvalue
do aktualnegoyield
.Jeśli więc mamy generator, który wykorzystuje
bar = foo(1) # tworzy bar jako obiekt generatora foo z wartością wewnętrzna value = 1
print(next(bar)) # wykonywane jest bar.__next__()
# generator bar wykonuje kod foo do napotkania yield
# yield przekazuje zwracaną wartość czyli 1
# generator zapamiętuje to miejsce
print(next(bar)) # wykonywane jest bar.__next__()
# generator kontynuje od zapamiętanego miejsca
# gdzie yield zwraca wartość None (brak send)
# kod wykonuje się do napotkania kolejnego yield
#
czy te dwie linijki to dokładnie to samo?
value = (yield value)
value = yield value