当我试图运行Python速成课程中的代码时,pygame出现了这个错误(出现了异常:AttributeError)
我正试图从《Python速成课程》一书中做一个项目。我完全按照书中的代码片段制作了所有内容,但我经常遇到以下错误: 发生异常:AttributeError“Settings”对象没有 属性“screenWidth”文件“D:\Visual Studio代码项目\数独 游戏\window.py“,第12行,在run\u游戏中 (igSettings.screenWidth,igSettings.screenHeight))文件“D:\Visual Studio代码项目\Sudoku game\window.py”,第28行,在 运行游戏() 这是我的数独文件的代码:当我试图运行Python速成课程中的代码时,pygame出现了这个错误(出现了异常:AttributeError),python,pygame,Python,Pygame,我正试图从《Python速成课程》一书中做一个项目。我完全按照书中的代码片段制作了所有内容,但我经常遇到以下错误: 发生异常:AttributeError“Settings”对象没有 属性“screenWidth”文件“D:\Visual Studio代码项目\数独 游戏\window.py“,第12行,在run\u游戏中 (igSettings.screenWidth,igSettings.screenHeight))文件“D:\Visual Studio代码项目\Sudoku game\wi
import sys
import pygame
from settings import Settings
def run_game():
pygame.init()
igSettings = Settings()
screen = pygame.display.set_mode(
(igSettings.screenWidth, igSettings.screenHeight))
pygame.display.set_caption("Sudoku")
while True:
screen.fill(igSettings.bgColor)
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit(0)
pygame.display.flip()
run_game()
这是我的设置文件中的代码:
class Settings():
def set(self):
self.screenWidth = 1200
self.screenHeight = 800
self.bgColor = (0.235,0)
我无法在线找到解决方案您需要在对象上调用
igSettings
来设置对象的属性
igSettings = Settings()
igSettings.set()
或者简单地让它们成为类属性,现在就可以直接访问它们
class Settings:
screenWidth = 1200
screenHeight = 800
bgColor = (0.235,0)
现在您甚至不需要调用
set
。您可以查看有关python如何工作的更多信息。在类设置中创建构造函数(\uuuu init\uuuu
)而不是方法集
:
class设置():
定义初始化(自):
self.screenWidth=1200
self.screenHeight=800
self.bgColor=(0235,0)
注意,您不能选择构造函数的名称。名称必须完全是\uuuu init\uuuu
。请参阅。
构造类的实例时,将自动调用构造函数:
igSettings=Settings()
此外,当声明属性``时(
->,
)还有一个输入错误:
self.bgColor=(0.235,0)
self.bgColor=(0235,0)
igSettings=Settings();igSettings.set()
在调用set()
函数后,将设置属性。请将堆栈跟踪放在代码引号中,并按原样复制堆栈跟踪。帮助我们阅读。谢谢@Ch3steR,在网上找不到答案,在书中,项目章节或功能章节没有提到这一点。我怎么能认为你的答案有效呢?很高兴能帮上忙。发布了一个包含更多细节的答案。;)