Форум сайта python.su
0
import pygame, time
from pygame import *
pygame.init()
hod = 'n'
a = 0
def menu():
if a == 0:
menu_fon = image.load('img/menu_fon.png').convert_alpha()
menu_fon.blit(okno)
a = 1
return a
okno = display.set_mode((800, 600))
while hod != 'c':
for event in pygame.event.get():
if event.type == QUIT:
hod = 'c'
if hod == 'n':
menu()
display.flip()
time.wait(41)
if a == 0:
UnboundLocalError: local variable 'a' referenced before assignment
Офлайн
20
def menu():
global a
if a == 0:
Офлайн
0
что-то не то… Вот здесь “а” задаётся и вызывается точно также
# -*- coding: utf-8 -*-
import sys
a = 0
b = 1
def c():
if a == 0:
d = b + 1
print(d)
while 1:
c()
sys.exit()
Отредактировано (Авг. 19, 2011 10:51:29)
Офлайн
32
Если в методе есть присвоение переменной “a = 1”, то “a” - считается локальное переменной, а в момент “if a == 0” она ещё не создана.
Во втором случае переменная “а” используется только для чтения, поэтому питон понял, что она глобальная.
Если нужно изменять глобальную переменную то нужно указать, что она глобальная: global a
Офлайн
0
Спасибо, понятно
Офлайн