2017-02-21 3 views
-5

Ive сталкивается с ошибкой, с которой я пытался заняться какое-то время.Ссылка перед назначением

 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

Ive пытался глобализирующимся переменным, но она все еще hasnt сделала разницу. Может кто-нибудь объяснить, как я могу это исправить.

Благодаря

+1

'onerot' присваиваться только значение, когда его соответствует условию 'if ' – haifzhan

+1

Спросите себя: каково значение' onerot', когда ваши блоки 'if' не выполняются? – 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" 
Смежные вопросы