Я делаю программу, которая привлекает внимание пользователя каждые 25 минут, затем дает ему 5-минутный перерыв, все было хорошо для тестирования кода с небольшим количеством времени (менее 2 минут), но когда я тестировал его в реальном времени 25 мин, это дает мне эту ошибку:
RecursionError: превышена максимальная глубина рекурсии
что я подумал, что мне нужно изменить глубину рекурсии, затем я изменил ее на:
sys.setrecursionlimit(1000000)
тогда это действительно превысило 2 минуты, но когда оно достигло примерно 10 минут, программа просто убила!
Я думаю, это потому, что программа создает большой объем памяти или что-то в этом роде но как я могу решить эту проблему !!?
Я постараюсь кратко дать вам основную функцию, чтобы вы могли понять идею:
sec=1500
count=0
def run():
global sec
global count
m,s=divmod(sec,60)
if sec >=0:
m,s=divmod(sec,60)
lblmin.config(text=str(m).zfill(2))
lblsec.config(text=str(s).zfill(2))
sec -= 1
if sec==-1:
count += 1
if count%2 ==0 : #to know if the timer will do 5 min or 25 min
confstr=messagebox.showinfo("stert?","timer will start now")
if confstr:
sec=1500
else: #for break
runbreak=False
if runbreak == False:
root.attributes("-topmost", True)
ask=messagebox.askyesno("break","break for 5 min")
runbreak=True
if runbreak:
sec=300
root.after(1000,run)
root.mainloop()
возможно (именно то, что я думаю), это из-за огромного времени, которое lblmin и lblse c меняются, но я действительно не представляю, как решить эту проблему.
, пожалуйста, помогите: (