2015-10-19 7 views
-1

Я пытаюсь сделать макет плоскости рассеяния, как я хочу, но когда я пытаюсь уменьшить масштаб после определенной точки, я получаю сообщение об ошибке «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]) 
+0

может быть полезно также положить трассировку стека (часть, которая повторяется) – AlbertFerras

+0

Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям проводки, особенно [MCVE] (http://stackoverflow.com/help/mcve). Дайте нам пример ввода и вывода (как желаемого, так и того, что вы получаете при попытке кодирования). Поскольку вы знаете, где проблема, это поможет, если вы нам расскажете. – Prune

+0

К сожалению, мне показалось, что я вложил это, ну, теперь проблема заключается в том, что при попытке уменьшить масштаб после определенного момента он вылетает и ошибка отмечена в коде –

ответ

0

Что вызывает ошибку, это код self.x = win[0] - this[0], вызывающий функцию on_transform, передающий первый if и ca и снова и снова.

Вы может хотите проверить это.

+0

О, я идиот, спасибо, я «Я был в этой канаве в течение нескольких недель и, просматривая свой собственный код, я, очевидно, решил, что раньше –

Смежные вопросы