if you don't finish the read or csv_row_reader generators, that file is open for the entire duration of the program the with block should be outside the function
I've never understood generators in JavaScript, (or any language), but this explained it so well! I have so many ideas for where to use these in my projects! (I love that learning about one language can teach you about others as well 😊)
hey hey, great material, keep that up! just wanted to share with you guys other useful thing about generators: `yield from` unfortunately I can't past link here to docs but anyway - it would simplify iterations in examples : )
these are completely different things, dude - the "yield from" construct delegates the flow of execution to another generator use cycle from itertools instead for example 4)))
This was helpful. But creating generators using classes is way harder I think, you have to set some methods and sometimes the output is the memory address instead of the value you want. Pain
A generator is a function that are using yield to send the vale back. iterators are objects where the method __iter__() and __next__() are define. A generator compute the value each time next is call. iterators object can store the values and then deliver the value. A list is an iterator. if you repeat a for i in a iterator, you will go through all the element of the list each time starting from the first. if you do a for i in a generator and you have reach the end, you cannot restart from the first one. reading from a file is typically a kind of generator, you can read each line till then end, but you can’t restart from the begining unless you close and reopen the file but technically is creating a new generator. With an iterator, you will load the content of the file in a list with the readlines() method, then iterate again on the same list.
pretty sure iterating over the lines of a file object ensures only one line is read into memory at a time, so not sure the reader generator is actually necessary.
The examples are too abstract. The line generator is neat when you need the context manager for the file to remain encapsulated in the generator's state, but you also need to advance the file stream and pass it around. For example if you're parsing a file with a specific structure.
How is the fibonacci function useful? Who actually uses it except for someone interviewing a junior dev or someone developing a scrum board app (in which case you only need the first 7 values)
if you don't finish the read or csv_row_reader generators, that file is open for the entire duration of the program
the with block should be outside the function
This is high level, thank you.
especially, if you don't read books, coal - Fluent Python @ Luciano Ramalho )))))
Really nice explanation! Very understandable. Maybe it would help even more if you showe the result first, then went into "how to code it"
3:04 `i` could be replaced with `_` since the value of `i` is never used (line 18):
for _ in range(n):
I've never understood generators in JavaScript, (or any language), but this explained it so well!
I have so many ideas for where to use these in my projects! (I love that learning about one language can teach you about others as well 😊)
SUPER useful video, thank you!
hey hey, great material, keep that up!
just wanted to share with you guys other useful thing about generators:
`yield from`
unfortunately I can't past link here to docs
but anyway - it would simplify iterations in examples : )
another thing about generators: typing.Generator is deprecated since 3.9; use collections.abc.Generator instead
New learning..thx
So good! Very helpful!
Can we get a sequel for Bob's story? I am intrigued, it sounds wise
Thanks
Great video , love from Lahore Pakistan
is there a difference for exemple 4. if we do yield from sequence, instead the for item in sequence: yield item
these are completely different things, dude - the "yield from" construct delegates the flow of execution to another generator
use cycle from itertools instead for example 4)))
This was helpful. But creating generators using classes is way harder I think, you have to set some methods and sometimes the output is the memory address instead of the value you want. Pain
Try to keep more code in the viewport so not just the function but also what called it
So… the line reading one is just map(str.strip,open(…))?
That's eager loading.
what's the difference between a generator, an iterator, and an iterable?
A generator is a function that are using yield to send the vale back. iterators are objects where the method __iter__() and __next__() are define. A generator compute the value each time next is call. iterators object can store the values and then deliver the value. A list is an iterator. if you repeat a for i in a iterator, you will go through all the element of the list each time starting from the first. if you do a for i in a generator and you have reach the end, you cannot restart from the first one. reading from a file is typically a kind of generator, you can read each line till then end, but you can’t restart from the begining unless you close and reopen the file but technically is creating a new generator. With an iterator, you will load the content of the file in a list with the readlines() method, then iterate again on the same list.
typing.Generator is deprecated alias to collections.abc.Generator.
我的QUBIT 怎麼都是上旋?
pretty sure iterating over the lines of a file object ensures only one line is read into memory at a time, so not sure the reader generator is actually necessary.
The examples are too abstract. The line generator is neat when you need the context manager for the file to remain encapsulated in the generator's state, but you also need to advance the file stream and pass it around. For example if you're parsing a file with a specific structure.
8:10 lol numpy calls cumulative sum that too
👽
so yield can send out and receive values?? maybe it should be named into something else...
New to this and I don’t understand 😢
I wanna marry Bob! Thanks
How is the fibonacci function useful? Who actually uses it except for someone interviewing a junior dev or someone developing a scrum board app (in which case you only need the first 7 values)
3D cad
thats opposite of what python was developed for
Why?
why?
why?
why?