我正在尝试在python中创建一条蛇,我通过一个将成为蛇的对象来做这件事。我试图从我的对象内部调用createSnake
函数,但参数不被接受。
我的IDE正在返回:
TypeError: createsnake() missing 1 required positional argument: 'y_coordinate'
这是我的蛇码:
class Snake(object):
def createsnake(self, x_coordinate, y_coordinate):
grid[x_coordinate][y_coordinate] = 2
以下是我如何调用该方法:
Snake.createsnake(1, 1)
答案 0 :(得分:3)
当函数具有self
参数时,这意味着它必须从类的实例中调用。
这意味着您无法直接从班级createsnake
拨打Snake
;你必须首先制作 Snake
。
snake = Snake()
snake.createsnake(1, 1)
或者,如果您做希望能够从Snake
类调用该函数,则应该使该函数为static:
class Snake(object):
@staticmethod
def createsnake(x_coordinate, y_coordinate):
grid[x_coordinate][y_coordinate] = 2
Snake.createsnake(1, 1)
另一个选项,因为你的函数用于执行某种初始化,就是将函数更改为构造函数,以便在创建新的Snake
时立即执行:
class Snake(object):
def __init__(self, x_coordinate, y_coordinate):
grid[x_coordinate][y_coordinate] = 2
snake = Snake(1, 1)
答案 1 :(得分:0)
问题是你没有在Snake实例上调用create方法。这是抱怨,因为您没有将参数传递给“self”参数,因为您在Snake类上调用它。 snake的一个实例将提供self参数。
尝试
snake = Snake()
snake.createsnake(1,1)