我一直具有錯誤的Python:分配錯誤之前引用的局部變量
UnboundLocalError: local variable 'new_speedDx' referenced before assignment
試圖運行下面的函數:
def new_speedD(boid1):
bposx = boid1[0]
if bposx < WALL:
new_speedDx = WALL_FORCE
elif bposx > WIDTH - WALL:
new_speedDx = -WALL_FORCE
bposy = boid1[1]
if bposy < WALL:
new_speedDy = WALL_FORCE
elif bposx > WIDTH - WALL:
new_speedDy = -WALL_FORCE
return new_speedDx, new_speedDy
在這個函數中,boid1是具有4個元素的向量( xpos,ypos,xvelocity,yvelocity),大寫的所有變量都是常量(數字)。 任何人有一個想法如何解決這個問題?我在互聯網上發現了很多可能的解決方案,但似乎沒有任何工作..
請注意,'bposx = boid1 [0]'和'bposy = boid1 [1]'可以使用拆包更好地寫入:'bposx,bposy = boid1'。 – 2013-03-19 18:16:07
另外兩個元素呢? – user2089012 2013-03-19 18:26:53
如果它是一個更大的元組,在3.x中,您可以執行'bposx,bposy,* _ = boid1',它會將任何額外的值作爲列表分配給'_'(通常用於指示被丟棄的值),早期版本只需添加'_'s,因爲'boid1'中會有值 - 例如,有四個元素:'bposx,bposy,_,_ = boid1'。當然,你可以使用真實姓名,但如果你不使用它們,'_'s明確表示這是故意的。 – 2013-03-19 18:30:02