2015-09-11 2 views
-3

Можете ли вы остановить функцию __init__, если условие не подтверждено? Моя цель состоит в том, чтобы избежать создания перекрывающихся последовательностей, каждый объект последовательности я создаю имеет длину 4.Не создавайте объект, если условие не подтверждено

class Sequence: 

    def __init__(self, lastsequence, start, end): 
     if start <= lastsequence.end+1: 
      #don't create the object and set end of the lastsequence to start+4 
     self.start = start 
     self.end = end 
+0

Вы можете создать исключение – khelwood

+0

Новый экземпляр уже создан при запуске '__init__' - вы можете реализовать' __new__' и/или выбросить ошибку, как предлагает @hhelwood. – jonrsharpe

+0

Как и где в коде вы создаете последовательности? –

ответ

1

Где-то в вашем коде у вас есть что-то вроде:

squence = Sequence(lastsequence, start, end) 

Изменить его:

if (start <= lastsequence.end + 1): 
    sequence = Sequence(lastsequence, start, end) 

Таким образом, вы полностью избегаете строительства нового объекта.

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