关于python:在赋值之前的引用

Reference before assignment

我遇到了一个错误,我已经尝试解决了一段时间。

1
2
3
4
5
6
7
8
9
        if outerball.pos.x >= (self.r - 0.1):
            if self.rotations == 0:
                stopt = time.time ( )
                onerot = stopt - startt
                print(onerot)
            self.rotations += 1

        # update variable outputs
        timey.text ="time: %1.f" % onerot +" seconds"

错误为timey.text ="time: %1.f" % onerot +" seconds"
UnboundLocalError: local variable 'onerot' referenced before assignment

我试过将变量全球化,但仍然没有改变。有人能解释一下我怎么修这个吗?

谢谢


在您的情况下,只有当onerot满足嵌套的if条件时,才会为它分配一个值,您需要为它分配一个默认值。

1
2
3
4
5
onerot = 0  # ---> assign a value to onerot here
if ....:
    if ...:
      //your code
timey.text ="time: %1.f" % onerot +" seconds"