Я получаю следующее сообщение об ошибке:Неограниченные Локальная ошибка Python
Traceback (most recent call last):
File "prpR.py", line 48, in <module>
main()
File "prpR.py", line 39, in main
d=drop()
UnboundLocalError: local variable 'drop' referenced.
Это что-то делать с объемом капли() в том, что, когда я все основные() падение() существует только в том, объем. Я попытался объединиться с глобальной переменной, чтобы заполнить массив rain_drops, но я не могу заставить эту ошибку уйти. Также комментарии стиля были бы очень оценены. Код ниже.
from graphics import *
from random import randint
#(137,43,226)
#(229,230,250) -BG
#d=None
class drop:
dc = color_rgb(136,43,226)
win=GraphWin("Purple Rain-Prince", 498, 500, autoflush=False)
win.setBackground(color_rgb(228,230,250))
win.setCoords(0,0,1000,1000)
lwr=6 #length to width ratio length:width
def __init__(self):
x= randint(0,1000)
self.diff=randint(-1,10)
y=randint(0,1000)
p1= Point(x, y)
p2=Point(x+self.diff,y+drop.lwr*self.diff)
self.r=Rectangle(p-1, p2)
self.r.setFill(color_rgb(136,43,226))
self.r.draw(drop.win)
def reset(self):
x= randint(0,1000)
self.diff=randint(1,20)
y=998
p1= Point(x, y)
p0=Point(x+self.diff,y+drop.lwr*self.diff)
self.r.undraw()
self.r=Rectangle(p1, p2)
self.r.setFill(color_rgb(136,43,226))
self.r.draw(drop.win)
def fall(self):
self.r.move(0,-self.diff)
if self.r.getP0().getY()<5:
self.reset()
def main():
d=drop()
rain_drops=[drop() for i in range(38)]
while(drop.win.checkMouse()==None):
for drop in rain_drops:
drop.fall()
update(28)
drop.win.close()
main()
Большое вам спасибо! Счастливого праздника! –