x = 0
y = 0
tx = 0
ty = 0
def setup():
size(600, 600)
noStroke()
def draw():
background(0)
textAlign(LEFT,TOP)
# text("Hello World",x,y)
tx=mouseX
ty=mouseY
f=0.01
#The error: "UnboundLocalError: local variable 'x' referenced before assignment"
x=lerp(x,tx,f)
y=lerp(y,ty,f)
这是处理python代码。 我使用的是处理3.3.6和Python模式3037的Mac OSX High Sierra 10.13.1。
此代码提供" UnboundLocalError:局部变量' x'在转让前引用"在代码中注释行之后的行。
我是python的新手,这似乎是谷歌所说的。
编辑: 另外,我如何在类方法中引用全局变量和实例变量?
答案 0 :(得分:2)
要从函数中修改全局变量,需要使用global
语句,如下所示:
def draw():
global x, y, tx, ty
background(0)
...
如果您使用的是类,那么您的代码将如下所示:
class Drawer(object):
def __init__(self):
self.x = 0
self.y = 0
self.tx = 0
self.ty = 0
def setup(self):
size(600, 600)
noStroke()
def draw(self):
background(0)
textAlign(LEFT, TOP)
# text("Hello World",x,y)
self.tx = mouseX
self.ty = mouseY
f = 0.01
self.x = lerp(self.x, self.tx, f)
self.y = lerp(self.y, self.ty, f)
d = Drawer()
d.setup()
d.draw()
答案 1 :(得分:0)
应该工作吗?我没有进入python,这是来自其他人
x = 0
y = 0
tx = 0
ty = 0
def setup():
size(600, 600)
noStroke()
def draw():
global x, y, tx, ty
background(0)
textAlign(LEFT,TOP)
# text("Hello World",x,y)
tx=mouseX
ty=mouseY
f=0.01
x=lerp(x,tx,f)
y=lerp(y,ty,f)