Здравствуйте.
Есть вот такой простой код на javascript
:
function Counter () {
this.count = 0;
setInterval(() => this.count++, 1000);
}
var counter = new Counter();
Каждый раз когда я вызываю counter
, я получаю значение, которое раз в 1 секунду увеличивается на 1.
Как написать аналогичную функцию в python
?
Если я пробую что-то вроде:
def counter():
counter = 0
while counter < 1000:
counter += 1
sleep(1)
return counter
c = counter()
То терминал занят и я не могу получить значение.
А если же так:
def counter():
counter = 0
while counter < 1000:
counter += 1
sleep(1)
return counter
c = counter()
то c
всегда равен 1
import time
def counter():
start = time.time()
while True:
yield int(time.time() - start)
c = counter()
print(next(c))
time.sleep(2)
print(next(c))
time.sleep(1)
print(next(c))
Используйте itertools.count()
:
import itertools
counter = itertools.count()
Затем всякий раз, когда будет нужно следующее число, используйте
next(counter)
(например next_id = next(counter)
) так как counter
просто итератор.
Примечание:
itertools.count()
позволяет использовать ключевые параметре start
и/или step
, например itertools.count(start=100, step=10)
выдает значения 100
, 110
, 120
, ...
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Пишу приложение с использованием React, Node, GulpВозникла проблема с подключением стилей в компонент
Здравствуйте, делаю nodejs сервер для уведомлений и сообщений
Нужен способ сделать так, чтобы все страницы перемещались влево, вправо, вниз и вверхПеремещение вниз и вверх работает нормально, а вправо...
Есть <input placeholder="Вопрос" onblur="myFunc(this)" onkeydown="myFunc2(this, event)" type="text">