Python的OOP初始化参数错误
是我的代码:Python的OOP初始化参数错误
class Board:
def __init__ (self, boardLength, boardHeight, pieces):
self.__boardLength = boardLength
self.__boardHeight = boardHeight
self.__pieces = pieces
self.__snapShots = []
self.__tiles = []
while len(self.__tiles) < (self.__boardHeight*self.__boardLength):
self.__tiles.append(0)
board1 = Board(5, 4,
[u,I_shape(1,'I'),X_shape(3,5,'U'),T_shape(4,5,'U'),L_shape(3,5,'U')]
)
,我得到这个:
TypeError: __init__() takes exactly 4 arguments (3 given)
据我所知,初始化坐4个arguements,但其中一人是自我,我把它另外三个。任何人都可以告诉我我做错了什么?
我想你的问题实际上是在I_shape
,因为你的其他形状都需要3个参数。我跑这个,它运行良好,取代None
不存在的类。
另外,值得注意的是,使用名称修改(__variable
)不需要99.9%的时间。如果您想表明它是私密的,请使用单个下划线。
你说得对!谢谢! – cheesery 2012-04-20 17:33:26
如果回答您的问题,请随时[接受我的回答](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)。 – 2012-04-20 17:34:09
@Lattyware:你很快。当我刚刚浏览时,你已经有了答案。 – 2012-04-20 17:36:20
I_shape的'__init__'是什么?这是一个给出三个参数的调用(隐含的“自我”加上你给出的两个参数)。 – torek 2012-04-20 17:30:20
我不得不尝试修复这个代码格式,就像3次。它很难阅读。 – jdi 2012-04-20 17:31:56
您可能会忽略的是围绕TypeError的上下文的其余部分。这应该告诉你发生崩溃的确切位置,并且@Lattyware在答案中表明了它最可能出现在I_shape类中而不是这个Board类。 – jdi 2012-04-20 17:33:04