python默认参数语法错误

时间:2013-07-27 03:01:07

标签: python pygame

我刚刚在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__()行。这个错误意味着什么,我在这里做错了什么?

1 个答案:

答案 0 :(得分: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):