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