As others have stated, the problem is due to the way floating point numbers are stored. While you could try to use workarounds, there’s a better way to do this: Animation
.
In __init__
:
self.grid.opacity = 0
anim = Animation(opacity=1)
anim.start(self.grid)
solved Float comparison (1.0 == 1.0) always false