Size: a a a

Сообщество Python Программистов

2020 May 17

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Просто Ярик
Вопрос к сведущим: yield, простыми словами, - одноразовый список?
Всё несколько сложнее
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
А именно?
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
yield это генераторы
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
Да, это я понял. Но вот из статьи на хабре ничего и не понял
источник

l

let45fc in Сообщество Python Программистов
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Language:
py3


Source:
def g(n):
   for i in range(n):
       yield i
       yield i**2
gen = g(5)
for some in gen:
   print(some)
   if some ==4: break
print("ololo, pause in iteration")
for some in gen: print(some)


Result:
0
0
1
1
2
4
ololo, pause in iteration
3
9
4
16
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
Бензофуран Гетероцикл
Language:
py3


Source:
def g(n):
   for i in range(n):
       yield i
       yield i**2
gen = g(5)
for some in gen:
   print(some)
   if some ==4: break
print("ololo, pause in iteration")
for some in gen: print(some)


Result:
0
0
1
1
2
4
ololo, pause in iteration
3
9
4
16
Каждый раз, когда используем, он генерирует значение, заданные по шаблону
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
Так?
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Просто Ярик
Каждый раз, когда используем, он генерирует значение, заданные по шаблону
Проще рассматривать генератор как функцию которая умеет делать return несколько раз
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
И он запоминает значения
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
Проще рассматривать генератор как функцию которая умеет делать return несколько раз
Не заканчивая выполняться после очередного ретарна
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
Бензофуран Гетероцикл
Не заканчивая выполняться после очередного ретарна
Вроде как больше понял, но все же, думаю, стоит поднять литературу
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
Бензофуран Гетероцикл
Language:
py3


Source:
def g(n):
   for i in range(n):
       yield i
       yield i**2
gen = g(5)
for some in gen:
   print(some)
   if some ==4: break
print("ololo, pause in iteration")
for some in gen: print(some)


Result:
0
0
1
1
2
4
ololo, pause in iteration
3
9
4
16
+
источник

A

Axenia in Сообщество Python Программистов
Kei_dan (21.26) увеличил карму entressi (734.51)
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
Спасибо)
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Просто Ярик
Вроде как больше понял, но все же, думаю, стоит поднять литературу
Это действительно самая простая аналогия)
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
def counter():
   n = 0
   while True:
       yield n
       n += 1
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
Вот это в ступор вводит
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
И yield и +=1
источник

ПЯ

Просто Ярик... in Сообщество Python Программистов
И вообще как это юзать
источник