即使不将它用作属性也会出现 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_scorescore_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()