import pygame
from pygame.locals import *
pygame.init()
class levelClass(object):
def __init__(self, name):
self.name = name
这个窗口的初始名称
def makeWindow(self):
screen = pygame.display.set_mode((800,800))
pygame.display.set_caption(self.name)
def drawName(self):
myfont = pygame.font.SysFont("monospace", 25)
label = myfont.render(self.name, 1, (255,0,0))
screen.blit(label, (400,400))
level = levelClass('Level 0')
while True:
level.__init__()
level.drawName()
level.makeWindow()
for event in pygame.event:
if event.type == QUIT:
pygame.exit()
sys.close()
pygame.display.update()
这将创建一个名为 Level 0 的窗口并将其写入窗口,但我看到了这个错误: init() 缺少 1 个必需的位置参数:'name'
最佳答案
您无需调用 __init__(...)
明确地,当您创建对象时:
level = levelClass('Level 0')
它隐式调用了__init__(...)
使用参数“0 级”,因此您无需在 while
中执行此操作循环。
__init__
方法大致代表 Python 中的构造函数,因此它应该只在您创建对象时执行一次。
编辑:
总之,你不能调用__init__()
,当您创建对象时:
level = levelClass('Level 0')
它是隐式调用的,因此要更正您的问题,请删除此行:
level.__init__()
关于python - __init__() 缺少 1 个必需的位置参数 : 'name' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20889680/