TypeError:__ init __()至少需要3个参数(给定2个)

时间:2015-11-28 19:33:10

标签: python pygame wxpython

我是Python面向对象编程的Newbe所以,我有这个代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import wx, pygame, sys, random, os
from pygame.locals import *
from random import choice
from block import O, I, S, Z, L, J, T

class Example(wx.Frame):


def __init__(self, parent, id, *args, **kwargs):
    super(Example, self).__init__(self, parent, id,*args, **kwargs)  
    self.InitUI()
    image_file = "roses.jpg"
    bmp1 = wx.Image(image_file, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
    self.bitmap1 = wx.StaticBitmap(self, -1, bmp1, (0, 0))
[more stuffs...]

并且打开一个带有一些按钮和背景图像的窗口。但是当我执行它时它会给我一个错误:

File "C:\mytetris\aaa.py", line 472, in main
Example(None)
TypeError: __init__() takes at least 3 arguments (2 given)

所以,请帮助我......

1 个答案:

答案 0 :(得分:0)

我只能猜测

class Example(wx.Frame):
    def __init__(self, parent, id, *args, **kwargs):

Example预计至少有3个参数selfparentid。对象名称作为self传递,因此您必须创建具有2个参数的对象 - 例如:

my_example = Example(some_parent, some_id)