tkinter unwanted function overwriting
If you want many falling rain, you need to save the rain drops before they reach the ground.
Below is an example:
raindrops = {}def raining(): # update existing rain drops for rd in list(raindrops): if raindrops[rd] < 600: # keep rain falling raindrops[rd] += 10 canvas.move(rd, 0, 10) else: # rain drop reaches the ground, remove it canvas.delete(rd) del raindrops[rd] # create new rain drop at random x x = random.randint(0, 1000) rd = canvas.create_line(x, 0, x, 20) raindrops[rd] = 0 # save the y of rain drop canvas.after(20, raining)