我刚刚写了一个简单的Python类来创建一个列表列表(这将是一个tic tac toe board),它给我一个语法错误。
我已经将语法与许多其他类进行了比较,所有这些类都有效,并且所有类都具有相同的语法(从我可以看到)。
这是Python 3.2。错误发生在代码的第二个冒号处,因此在构造函数声明之后(或者至少以红色突出显示)。
class Board:
def__init__(self, N):
"""Create a list of lists that will represent my playing board"""
self._N = N
Brd = []
for i in range(N):
Brd = Brd + ['()','()','()']
self._theBoard = Brd
def drawBoard(N):
"""Draws the Board"""
print(self._theBoard)
提前致谢
答案 0 :(得分:10)
您错过了def
和__init__
之间的空格:
def__init__(self, N):
将其添加到:
def __init__(self, N):
请注意,您的drawBoard(N)
方法缺少self
参数;在调用时,N
将被设置为实例。
答案 1 :(得分:5)
我猜您的drawBoard
类是Board
的一种方法,在这种情况下,您需要明确地将self
传递给它:
def drawBoard(self, N):
"""Draws the Board"""
print(self._theBoard)
它应该以与其他方法相同的方式缩进。请注意,N
参数在这里没用。
其他人已在def
方法定义中__init__
之后指出缺少空格。
答案 2 :(得分:3)
你忘了在这里留一个空间:
def__init__(self, N):
应该是
def __init__(self, N):
答案 3 :(得分:0)
__init__
是在python中定义构造函数的方法。您必须在它前面加def
来声明它是一个函数。因此,正确的方法是:
def __init__():
这是def和 init 之间的空格。