gpt4 book ai didi

python - 是什么导致赋值错误之前引用的这个变量?

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:12 25 4
gpt4 key购买 nike

这是我正在使用的代码:

import pygame

global lead_x
global lead_y
global lead_x_change
global lead_y_change

lead_x = 300
lead_y = 300
lead_x_change = 0
lead_y_change = 0


def playerUpdateMovement():
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
lead_x_change = -1
elif keys[pygame.K_RIGHT]:
lead_x_change = 1
else:
lead_x_change = 0

if keys[pygame.K_UP]:
lead_y_change = -1
elif keys[pygame.K_DOWN]:
lead_y_change = 1
else:
lead_y_change = 0

lead_x += lead_x_change
lead_y += lead_y_change

当我出于某种原因运行此脚本时,出现错误:

第 30 行 ... 赋值前引用的局部变量 lead_x

全局变量不能在函数中调用吗?这很奇怪,我是 python 的新手。

最佳答案

Python 对“全局”变量的处理确实有点奇怪,特别是如果你不习惯的话。

解决您问题的简单方法是将您的global 声明移到每个使用这些变量的函数中。所以:

def playerUpdateMovement():
global lead_x
global lead_y
global lead_x_change
global lead_y_change

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
lead_x_change = -1

这告诉 Python,您在 playerUpdateMovement 函数中使用 lead_x_change 实际上是对全局变量的引用,而不是使用局部变量(相同的名称),这是默认处理方式。

关于python - 是什么导致赋值错误之前引用的这个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30678052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com