pygame.Surface 变成 NoneType

pygame.Surface turning into NoneType

我有一个名为 engine.py 的 python 文件。我有一个特定的功能,我将加入其中,因为我知道该功能可以正常工作:

def set_image(self,path : str,spritesheet=None) -> pygame.Surface:
        if (path is not None) and (spritesheet is None): # if path is provided but spritesheet is not
            try:
                self.image = pygame.image.load(path)
                print(type(self.image))
                self.rect = self.image.get_rect()
            except FileNotFoundError as e:
                raise e

但是当我尝试 blit() 函数的图像结果时,我得到 TypeError 说明 pygame.Surface 必须是第一个参数,而不是 None。我做了一些测试,发现 engine.py 中的函数工作得很好,而且它确实正确地设置了 self.image。但是程序没有它的self.imagepygame.Surface对象。

这里是声明玩家对象并设置 player.image 的地方:

player = Engine.Player()

player.image = player.set_image('screensaver/blue_car.png',)

这里是我尝试 blit() 它到我的显示表面的地方(出现错误的行):

display.blit(player.image, (0,0))

set_image是一种方法。该方法不会 return 图像,但会设置对象的 imagerect 属性。因此:

player.image = player.set_image('screensaver/blue_car.png',)

player.set_image('screensaver/blue_car.png')