2017-02-21 6 views
-5

私はしばらくの間に取り組もうとしているエラーに遭遇します。譲渡前の参考

 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

アイブ氏は、変数をグローバル化しようとしたが、それはまだhasntは違いを作っています。 誰かがこれをどのように修正できるか説明することができますか?

おかげで、あなたのケースonerot

+1

をデフォルト値を割り当てる必要があります'if''に合っています – haifzhan

+1

これはあなた自身に尋ねます:' if'ブロックが実行されないときの 'onerot'の値は? – jmoerdyk

+0

私は同じ問題を抱えている[この質問](http://stackoverflow.com/questions/15367760/unboundlocalerror-local-variable-referenced-before-assignment-when-reading-from)を指摘するつもりです条件付きで定義された変数があります。 –

答えて

1

はそれがあればネストされた条件を満たした場合にのみ、値が割り当てられ、あなたはときにのみ、値が割り当てられonerot` `それに

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