Код: Выделить всё
import time
import numpy as np
def sensor_data_generator(n):
for _ in range(n):
reading = {
"timestamp" : time.time(),
"temperature" : np.random.uniform(20.0, 25.0),
"humidity" : np.random.uniform(60.0, 100.0),
"light" : np.random.uniform(0.0, 100.0)
}
yield reading
time.sleep(1)
sensor_stream = sensor_data_generator(5)
for _ in range(6):
print(next(sensor_stream))
но я получил результат: «Он печатает первые 5 показаний, затем выдает ошибку».
Ошибка остановки
Я попробовал это
Код: Выделить всё
gen = sensor_data_generator(5)
for reading in gen:
print(reading)
вывод
мои вопросы:
- Почему происходит эта StopIteration?
- Как я могу справиться с этим, чтобы цикл не завершался сбоем при вызове next() больше раз, чем длина генератора?
Подробнее здесь: https://stackoverflow.com/questions/799 ... iple-times
Мобильная версия