Я пытаюсь сделать макет плоскости рассеяния, как я хочу, но когда я пытаюсь уменьшить масштаб после определенной точки, я получаю сообщение об ошибке «RuntimeError: максимальная глубина рекурсии превышена называя объект Python»Я не могу понять, почему происходит рекурсия, Тхо методом проб и ошибок я выяснил, где это происходит (это отмечено в коде)Ошибка рекурсии Я не могу вычислить
вот отслеживающий: http://pastebin.com/i2z8SXgc
class Controller(ScatterPlaneLayout):
def __init__(self, **kwargs):
super(Controller, self).__init__(**kwargs)
def on_transform(self, instance, value):
win = self.get_parent_window().size
this = self.bbox[1]
if win[0] > this[0] and win[1] > this[1]:
if self.x < 0:
self.x = 0
if self.y < 0:
self.y = 0
if this[0] + self.x > win[0]:
self.set_right(win[0])
if this[1] + self.y > win[1]:
self.set_top(win[1])
else:
if self.x > 0:
self.x = 0
if self.y > 0:
self.y = 0
#This is the part that causes the error
if this[0] + self.x < win[0]:
self.x = win[0] - this[0]
#end of error
if this[1] + self.y < win[1]:
self.set_top(win[1])
может быть полезно также положить трассировку стека (часть, которая повторяется) – AlbertFerras
Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям проводки, особенно [MCVE] (http://stackoverflow.com/help/mcve). Дайте нам пример ввода и вывода (как желаемого, так и того, что вы получаете при попытке кодирования). Поскольку вы знаете, где проблема, это поможет, если вы нам расскажете. – Prune
К сожалению, мне показалось, что я вложил это, ну, теперь проблема заключается в том, что при попытке уменьшить масштаб после определенного момента он вылетает и ошибка отмечена в коде –