Python错误参数太多

2024-04-25 04:31:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个程序来创建、更改和解决一个15个难题,我被困在我认为简单的部分。所以我有一个Board类,它在默认情况下创建了一个已解决的15个难题。然后我有一个set_board函数,它接受16个整数,并将它们放入拼图中,而不是默认值。但是当我运行这个函数时,它说我提供了太多的参数(set_board()正好接受16个参数(给定的17个)),即使我输入了0到16的整数(*这里代替了0,所以很容易看到)。要么我盯着屏幕看太久,要么我误解了什么。有人能帮忙吗?你知道吗

    def set_board(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p):
        self.board = [[a, b, c, d], [e, f, g, h], [i, j, k, l], [m, n, o, p]]

在贝壳里:

    board.set_board('*', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)

    Traceback (most recent call last):
      File "<pyshell#20>", line 1, in <module>
        board.set_board('*', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
    TypeError: set_board() takes exactly 16 arguments (17 given)

Tags: 函数self程序boardmost参数屏幕def
3条回答

没关系,我看到了我的简单错误。我忘了在函数声明中包含self。我真傻。你知道吗

在Python中定义类的方法时,第一个参数应该是“self”。Python正在为您传递这个参数,因此给出了17个参数。你知道吗

用途:

def set_board(self, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p):
        self.board = [[a, b, c, d], [e, f, g, h], [i, j, k, l], [m, n, o, p]]

你必须治疗

board.set_board('*', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)

作为

set_board(board, '*', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)

所以你有17个论点。这就是为什么我们将方法定义为set_board(self, ....)

相关问题 更多 >