- Генераторы — это прекрасная штука. И тут появляется он, йилд:
-
- Для понимания, что делает yield, необходимо понимать, что такое генераторы. Генераторам же предшествуют итераторы
- ...
- Всё, к чему можно применить конструкцию «for… in...», является итерируемым объектом: списки, строки, файлы…
- ...
- Генераторы это тоже итерируемые объекты, но прочитать их можно лишь один раз. Это связано с тем, что они не хранят значения в памяти, а генерируют их на лету
- ...
- Yield это ключевое слово, которое используется примерно как return — отличие в том, что функция вернёт генератор
-
- habrahabr.ru/blogs/python/132554
-
- Я для себя уяснил тему генераторов и йилда после написания такого кусочка кода:
-
def fib():
a, b = 0, 1
while 1:
yield b # return and continue
a, b = b, a+b
if b > 100:
return
def testYeld():
""" yeld example (http://www.python.org/dev/peps/pep-0255/) """
print 'Fibonacci by generator func, aka yeld op: ', list(fib())
print 'iterate by hand:'
gen = fib(); ln = ''
for x in gen:
ln += str(x) + ', '
print ln
|
- И немного серебрянки.
- Нормальное, кастомизированное контекстное меню (ПКМ) для Silverlight-ных аппликух: c-sharpcorner.com/uploadfile/dpatra/right-click-and-context-menu-in-silverlight-4
-
Комментариев нет:
Отправить комментарий