Pygame : AttributeError: 'NoneType' object has no attribute 'fill'
Pygame : AttributeError: 'NoneType' object has no attribute 'fill'
所以,这是我的代码,我通过观看教程正常编码,但突然当我使用填充属性时,弹出错误提示如下:
第 15 行,在 display.fill((25, 25, 29))
AttributeError: 'NoneType' 对象没有属性 'fill'
下面是我写的代码,如果有人愿意帮助我,我会很高兴!
下面是我的代码
import pygame
pygame.init()
pygame.display.set_mode((800, 600))
display = pygame.display.set_caption("Space Invaders!")
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
display.fill((25, 25, 29))
pygame.display.update()
我怀疑 pygame 初始化失败。这传播到:
display = pygame.display.set_caption("Space Invaders!")
返回 'NoneType' 最终失败的对象 运行:
display.fill((25, 25, 29))
在“display =...”处使用断点来查看 return 值。
进一步查看后....它与 syntax/formatting 相关。以下是我为让它继续进行的更正:
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
display = pygame.display.set_caption("Space Invaders!")
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((25, 25, 29))
pygame.display.update()
虽然我还没有 pygame 所以我无法测试代码,但我强烈怀疑你的问题与这三行以及它们之间的关系有关:
pygame.display.set_mode((800, 600))
display = pygame.display.set_caption("Space Invaders!")
display.fill((25, 25, 29))
您已经设置了显示模式,现在您要填充它。但是,您实际上并没有将 display.set_mode()
的输出分配给 display
,您已经分配了 display.set_caption()
的输出 - 正如其他人已经评论的那样,它与 display.set_caption()
没有 return 值。
因此,当您尝试使用 display
时,它不包含任何内容。
考虑改用以下代码(尽管我不知道顺序是否重要):
display = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Space Invaders!")
所以,这是我的代码,我通过观看教程正常编码,但突然当我使用填充属性时,弹出错误提示如下:
第 15 行,在 display.fill((25, 25, 29)) AttributeError: 'NoneType' 对象没有属性 'fill'
下面是我写的代码,如果有人愿意帮助我,我会很高兴!
下面是我的代码
import pygame
pygame.init()
pygame.display.set_mode((800, 600))
display = pygame.display.set_caption("Space Invaders!")
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
display.fill((25, 25, 29))
pygame.display.update()
我怀疑 pygame 初始化失败。这传播到:
display = pygame.display.set_caption("Space Invaders!")
返回 'NoneType' 最终失败的对象 运行:
display.fill((25, 25, 29))
在“display =...”处使用断点来查看 return 值。
进一步查看后....它与 syntax/formatting 相关。以下是我为让它继续进行的更正:
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
display = pygame.display.set_caption("Space Invaders!")
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((25, 25, 29))
pygame.display.update()
虽然我还没有 pygame 所以我无法测试代码,但我强烈怀疑你的问题与这三行以及它们之间的关系有关:
pygame.display.set_mode((800, 600))
display = pygame.display.set_caption("Space Invaders!")
display.fill((25, 25, 29))
您已经设置了显示模式,现在您要填充它。但是,您实际上并没有将 display.set_mode()
的输出分配给 display
,您已经分配了 display.set_caption()
的输出 - 正如其他人已经评论的那样,它与 display.set_caption()
没有 return 值。
因此,当您尝试使用 display
时,它不包含任何内容。
考虑改用以下代码(尽管我不知道顺序是否重要):
display = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Space Invaders!")