2013-09-14 5 views
1
f=1 

def skip(i): 
    global f +=i 
    return 

Что случилось?Недопустимый синтаксис на '='

Я не знаю

>>> f 
1 
>>> skip(3) 
Traceback (most recent call last): 
    File "<pyshell#10>", line 1, in <module> 
    skip(3) 
    File "C:/Users/PC/Desktop/game.py", line 4, in skip 
    f +=i 
UnboundLocalError: local variable 'f' referenced before assignment 

ответ

9

global заявление идет на отдельные линии:

def skip(i): 
    global f 
    f += i 

return является излишним здесь; Я оставил его.

global statement «метки» имен в функции глобального; это отчетливое заявление, и вы можете только дать ему одно или несколько имен (через запятую):

global foo, bar, baz 

Это действительно не имеет значения, где в функции вы положили их, пока они находятся на линии . Данное заявление относится к функции целиком. Таким образом, имеет смысл вставить инструкцию global наверху, чтобы избежать путаницы.

+0

thnx. это мой первый день python, и я действительно noob – Zhmeln

Смежные вопросы