函数不会检测 python "unresolved refernce" 中的变量
function won't detect variable in python "unresolved refernce"
我开始玩一点海龟模块并开始 space 入侵者类型的游戏
当我将项目符号 运行 添加到问题中时,
我想创建一个活动项目符号列表
此列表中的每个条目都是一个名为 Shot 的对象
并创建了一个名为 shot_num 的变量,它基本上是每个镜头的 ID
这是主要的 class
import turtle
from shots import Shots
**** some code ****
# shot
shot = turtle.Turtle()
shot.speed(5)
shot.shape("square")
shot.color("white")
shot.shapesize(stretch_wid=2, stretch_len=0.2)
shot.penup()
shot.goto(1200, 1200)
# variables
active_shots = []
shot_num = 0
def gun_shot():
temp_shot = Shots(shot_num, gun.xcor())
shot_num += 1 ###where the problem happends
main_win.listen()
main_win.onkeypress(gun_shot, "space")
while True:
main_win.update()
这是镜头class
import turtle
class Shots:
def __init__(self, number, x_location):
self.number = number
self.x_location = x_location
self.shot1 = turtle.Turtle()
self.shot1.speed(5)
self.shot1.shape("square")
self.shot1.color("white")
self.shot1.shapesize(stretch_wid=2, stretch_len=0.2)
self.shot1.penup()
self.shot1.goto(x_location, -200)
def border_check(self):
if self.x_location > 400:
del self
上面写着"unresolved refernce shot_num",我真的不明白为什么
当我删除这一行时它有效
谢谢
正如我在提交中所述,只需添加 global shot_num
def gun_shot():
global shot_num
temp_shot = Shots(shot_num, gun.xcor())
shot_num += 1
好像Python不想识别你的全局变量...
我开始玩一点海龟模块并开始 space 入侵者类型的游戏 当我将项目符号 运行 添加到问题中时, 我想创建一个活动项目符号列表 此列表中的每个条目都是一个名为 Shot 的对象 并创建了一个名为 shot_num 的变量,它基本上是每个镜头的 ID 这是主要的 class
import turtle
from shots import Shots
**** some code ****
# shot
shot = turtle.Turtle()
shot.speed(5)
shot.shape("square")
shot.color("white")
shot.shapesize(stretch_wid=2, stretch_len=0.2)
shot.penup()
shot.goto(1200, 1200)
# variables
active_shots = []
shot_num = 0
def gun_shot():
temp_shot = Shots(shot_num, gun.xcor())
shot_num += 1 ###where the problem happends
main_win.listen()
main_win.onkeypress(gun_shot, "space")
while True:
main_win.update()
这是镜头class
import turtle
class Shots:
def __init__(self, number, x_location):
self.number = number
self.x_location = x_location
self.shot1 = turtle.Turtle()
self.shot1.speed(5)
self.shot1.shape("square")
self.shot1.color("white")
self.shot1.shapesize(stretch_wid=2, stretch_len=0.2)
self.shot1.penup()
self.shot1.goto(x_location, -200)
def border_check(self):
if self.x_location > 400:
del self
上面写着"unresolved refernce shot_num",我真的不明白为什么 当我删除这一行时它有效 谢谢
正如我在提交中所述,只需添加 global shot_num
def gun_shot():
global shot_num
temp_shot = Shots(shot_num, gun.xcor())
shot_num += 1
好像Python不想识别你的全局变量...