Skip to main content
 首页 » 编程设计

python之__init__() 缺少 1 个必需的位置参数 : 'name'

2025年05月04日15lexus

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__()