Топ-2 ответов на оба упомянутых == означает равенство и === означает идентификатор. К сожалению, это утверждение неверно.
Если оба операнда из == являются объектами, то их сравнивают, чтобы увидеть, являются ли они одним и тем же объектом. Если оба операнда указывают на один и тот же объект, то оператор равенства возвращает true. В противном случае они не равны.
var a = [1, 2, 3];
var b = [1, 2, 3];
console.log(a == b) // false
console.log(a === b) // false
В приведенном выше коде оба == и === получают false, потому что a и b не являются одинаковыми объектами.
То есть: если оба операнда = = - объекты, == ведет себя так же, как ===, что также означает идентификацию. Существенным отличием этих двух операторов является преобразование типов. == имеет преобразование, прежде чем оно проверит равенство, но === не делает.
Сообщение об ошибке
имя 'K_w' не определено
blockquote>, потому что вы забыли пространство имен модуля.
Имя константы
pygame.K_w
, а неK_w
. Константы помещаются в пространство имен модуля pygame.Либо используйте полное имя константы :
w = control().button(pygame.K_w)
, либо импортируйте константы pygame. См. pygame.locals
. ]from pygame.locals import * # [...] w = control().button(K_w)
Кроме того, переменные
w
никогда не определяются, потому чтоcontrol()
генерирует объект, ноbutton()
не возвращает никакого значения. Кнопка метода должна вернутьself
:class control(): def button(self, button): self.button = button return self
Но я рекомендую реализовать конструктор в классе
control
, а не в методеbutton
(Конечно, вы можете сделать и то и другое):class control(): def __init__(self, button=0): self.button = button ctrl = control() w = control(K_w) s = control(K_s) UP = control(K_UP) DOWN = control(K_DOWN)
Метод
key
должен вернуть новое значение параметраaxis
:class control(): # [...] def key(self, axis, speed): if event.type == pygame.KEYDOWN: if event.key == self.button: axis = speed return axis y1, y2 = 0, 0 while True: for event in pygame.event.get(): ctrl.exit() y1 = w.key(y1, -5) y1 = s.key(y1, +5) y2 = UP.key(y2, -5) Y2 = DOWN.key(y2, +5)