Форум сайта python.su
1
Преет всем.
У меня есть какая функция:
def ontimer(fun, t):
# Завёт функцию fun через каждые t миллисекунд
time.sleep(t/1000.)
fun()
def fun():
.......
ontimer(fun, 10)
Офлайн
А какая у вас выходит ошибка? (не уверен, но)
Офлайн
33
Massa1994
Как можно изменить эту функцию чтобы ошибка исчезла?
Офлайн
1
Budulianin
В pythone есть модуль turtle. Там есть функция ontimer(fun, t) она делает то что и моя
но там никакой ошибки нетуimport turtle
a = 0
def primer():
global a
a += 1
print a
turtle.ontimer(primer, 0)
primer()
turtle.mainloop()
Я пытаюсь написать такую же как эту.
Офлайн
Какие у вас выводятся ошибки?
Как вариант, посмотрите исходники http://pastebin.com/LirppRQg
Офлайн
Massa1994по всей видимости здесь имеет место асинхронный вызов turtle.ontimer(primer, 0), т.е. вы передали функцию primer методу ontimer, а (упрощённо) он уже асинхронно вызывает primer. Типа как after в ткинтер, или e32.ao_sleep(time_, func) в PyS60… Я так думаю. А у вас рекурсивный вызов, который конечно когда-то превысит лимит
import turtle
a = 0
def primer():
global a
a += 1
print a
turtle.ontimer(primer, 0)
primer()
turtle.mainloop()
Я пытаюсь написать такую же как эту.
Отредактировано dimy44 (Авг. 21, 2013 20:15:41)
Офлайн
33
Massa1994
В pythone есть модуль turtle.
Офлайн