即使不将它用作属性也会出现 AttributeError?
Getting an AttributeError even when not using it as an attribute?
我创建了一个 class/object Scoreboard()
和一个函数 show_score()
。我正在将此对象导入另一个 python 文件以调用和使用它的一些功能。
import pygame.font
class Scoreboard():
def __init__(self, ai_settings, screen, stats):
self.screen = screen
self.screen_rect = screen.get_rect()
self.ai_settings = ai_settings
self.stats = stats
self.text_color = (30, 30, 30)
self.font = pygame.font.SysFont(None, 48)
self.prep_score
def prep_score(self):
score_str = str(self.stats.score)
self.score_image = self.font.render(
score_str, True,
self.text_color,
self.ai_settings.bg_color)
self.score_rect = self.score_image.get_rect()
self.score_rect.right = self.screen_rect.right - 20
self.score_rect.top = 20
def show_score(self):
self.screen.blit(self.score_image, self.score_rect)
当我 运行 另一个文件时,我写了 sb = Scoreboard()
,我在
中得到一个错误
line 28, in show_score
self.screen.blit(self.score_image, self.score_rect)
AttributeError: 'Scoreboard' object has no attribute 'score_image'
这对我来说听起来很奇怪,因为 score_image
不是属性(或者至少我认为不是)。
有人可以告诉我我做错了什么吗?
你不打电话prep_score
; score_image
从未 创建 - 更改
class Scoreboard():
def __init__(self, ai_settings, screen, stats):
....
....
self.prep_score
到
class Scoreboard():
def __init__(self, ai_settings, screen, stats):
....
....
self.prep_score()
我创建了一个 class/object Scoreboard()
和一个函数 show_score()
。我正在将此对象导入另一个 python 文件以调用和使用它的一些功能。
import pygame.font
class Scoreboard():
def __init__(self, ai_settings, screen, stats):
self.screen = screen
self.screen_rect = screen.get_rect()
self.ai_settings = ai_settings
self.stats = stats
self.text_color = (30, 30, 30)
self.font = pygame.font.SysFont(None, 48)
self.prep_score
def prep_score(self):
score_str = str(self.stats.score)
self.score_image = self.font.render(
score_str, True,
self.text_color,
self.ai_settings.bg_color)
self.score_rect = self.score_image.get_rect()
self.score_rect.right = self.screen_rect.right - 20
self.score_rect.top = 20
def show_score(self):
self.screen.blit(self.score_image, self.score_rect)
当我 运行 另一个文件时,我写了 sb = Scoreboard()
,我在
line 28, in show_score
self.screen.blit(self.score_image, self.score_rect)
AttributeError: 'Scoreboard' object has no attribute 'score_image'
这对我来说听起来很奇怪,因为 score_image
不是属性(或者至少我认为不是)。
有人可以告诉我我做错了什么吗?
你不打电话prep_score
; score_image
从未 创建 - 更改
class Scoreboard():
def __init__(self, ai_settings, screen, stats):
....
....
self.prep_score
到
class Scoreboard():
def __init__(self, ai_settings, screen, stats):
....
....
self.prep_score()