-1

我刚刚在 python 中为使用 pygame 编写的游戏编写了一个小文本类,由于某种原因,我的默认参数不起作用。我尝试查看 python 文档,看看是否可以让我知道我做错了什么,但我没有完全了解文档中的语言。似乎没有其他人有这个问题。

下面是文本类的代码:

class Text:
    def __init__(self,screen,x_location='center',y_location='center',writeable,color,size=12):
        self.font = pygame.font.Font("Milleni Gem.ttf", size)

        self.text = self.font.render(writeable,True,color)
        self.textRect = self.text.get_rect()

        if x_location == "center":
            self.textRect.centerx = screen.get_rect().centerx
        else:
            self.textRect.x = x_location

        if y_location == "center":
            self.textRect.centery = screen.get_rect().centery
        else:
            self.textRect.y = y_location
        self.update()

    def update(self):
        screen.blit(self.text,self.textRect)

这是调用它的代码:

from gui import *
Text(screen,75,75,currentweapon.clip)#currentweapon.clip is an integer

我得到的错误是这样的:

SyntaxError: non-default argument follows default argument

并指向def __init__()代码中的行。这个错误是什么意思,我在这里做错了什么?

4

1 回答 1

5
def __init__(self,screen,x_location='center',y_location='center',writeable,color,size=12):

您在默认参数之后定义了非默认参数,这是不允许的。你应该使用:

def __init__(self,screen,writeable,color,x_location='center',y_location='center',size=12):
于 2013-07-27T03:04:11.873 回答