sulang2013 2024-07-28 21:52 采纳率: 0%
浏览 4

python Never是什么?

我在编pygame的时候发现了一个问题,vscode上面说有一个本来应该是int的变量变成了Never类,那是什么类,咋解决啊?

    @typing.override
    def update(self):
        keys = p.key.get_pressed()
        if not self.rect.x==-50 or self.rect.x==550:
            if keys[p.K_LEFT]:
                self.rect.x -= 5
                self.direction = "left"
            if keys[p.K_RIGHT]:
                self.rect.x += 5
                self.direction = "right"
        else:
            if self.rect.x==-50:
                self.rect.x += 5
            elif self.rect.x==550:
                self.rect.x -= 5
        if keys[p.K_UP]:
            self.shoot()
        if keys[p.K_DOWN]:
            self.big_shoot()

就在那个elif self.rect.x==550:上,vscode说x的类型是Never

img

  • 写回答

1条回答 默认 最新

  • 何事_ 2024-07-28 21:52
    关注

    引自免费微信小程序:皆我百晓生

    这个问题似乎与Python编程语言无关,而是在描述游戏开发中的一个特定情况。如果你在尝试将一个非数字值(比如字符串)赋给一个整数类型的变量,可能会导致错误。

    在这个例子中,self.rect.x == -50self.rect.x == 550 是两个不同的条件判断语句。第一个条件判断了self.rect.x是否等于-50,第二个条件判断了它是否等于550。这两个条件的结果会分别影响程序的行为:如果是True,则执行if后面的代码块,否则执行另一个else后面的代码块。

    然而,在你的代码中,你试图在一个布尔表达式后面直接访问self.rect.x,这会导致一个错误。你应该首先检查self.rect.x是否为-50或者550,并根据结果执行相应的操作。

    例如,如果self.rect.x确实不等于-50和550,那么你应该这样做:

    if (self.rect.x != -50 and self.rect.x != 550):
        # 执行其他代码
    

    如果你仍然遇到问题,可能是因为你在处理p.key.get_pressed()时发生了异常。在这种情况下,你需要确保这个函数返回的是有效的输入状态(即键盘键被按下)。可以使用try-except语句来捕获并处理任何可能出现的异常。

    如果你依然无法解决问题,建议查看pygame库的文档,了解如何正确地使用get_pressed()函数以及如何在循环中管理多个条件。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月28日

悬赏问题

  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息