내가 오류파이썬 : 다음 함수를 실행하는 동안 할당 오류 전에 참조 된 지역 변수는
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'. –
그리고 다른 두 요소는? – user2089012
더 큰 튜플 인 경우, 3.x에서는'_'에 목록으로 추가 값을 할당하는'bposx, bposy, * _ = boid1'을 수행 할 수 있습니다 (보통 버려지는 값을 나타내는 데 사용됩니다). 이전 버전에서는'bpos1, bposy, _, _ = boid1'과 같은 네 개의 요소가있는 것처럼 'boid1'에 값이있을 것 인만큼'_'s을 추가합니다. 당연히 실제 이름을 사용할 수는 있지만 사용하지 않으면 '_'의도적임을 분명히합니다. –