Я создаю объектный блок, которому я присваиваю X и Y позицию среди других аргументов, я хочу иметь возможность перемещать его через метод move()
на x
и y
единиц и иметь исходный * Позиция 1004 * и y
обновлена, поэтому, когда я звоню сказать xyRange()
перед перемещением объекта, я получаю исходную позицию x
, y
, а когда я делаю это после move()
, я получаю обновлены позиции x
, y
.
Ниже приведено то, что я пробовал, но мне кажется, что я упускаю какой-то важный аспект, потому что я получаю сообщение об ошибке, что у моего объекта «Блок» нет такого атрибута.
def X(self):
x = self.xPosition
return x
def Y(self):
y = self.yPosition
return y
def xyRange(self):
xRange = self.X() + self.toBlock.absX()
yRange = self.Y() + self.toBlock.absY()
return xRange, yRange
def move(self, moveX=None, moveY=None):
absX = self.absX()
absY = self.absY()
self.moveX = moveX
if(self.moveX == None):
moveX = 0
self.moveY = moveY
if(self.moveY == None):
moveY = 0
absoluteX = absX + moveX
absoluteY = absY + moveY
return absoluteX, absoluteY
def absX(self):
absoluteX = self.X() + self.toBlockId.absX()
return absoluteX
def absY(self):
absoluteY = self.Y() + self.toBlockId.absY()
return absoluteY
Итак, у меня есть функции X()
и Y()
для получения параметров из конструктора и возможности манипулировать ими в других функциях, а также absX()
и absY()
для отслеживания фактического положения объектов в сетке и xyRange()
функция, которая в основном делает то же самое, но просто возвращает кортеж параметра x
, y
(скажем, для удобства). Но я не могу понять, как обновить мои исходные позиции X и Y.
Скажем, я начинаю с block1.xyRange()
, который возвращает (2, 2)
тогда я block1.move(2, 2)
, который вы ожидаете, когда снова наберете block1.xyRange()
, вернет (4, 4)
. Но если я пытаюсь добавить параметры self.moveX
и self.moveY
из функции перемещения в функцию X()
и Y()
, я получаю сообщение об ошибке, в котором говорится, что у объекта «Блок» нет атрибута «MoveX» или «MoveY». Я предполагаю, что это потому, что это само по себе Но я не могу понять, как это исправить.
Любые предложения будут с благодарностью.