2012-03-28 4 views
2

Я просто наткнулся на следующий код в существующем проекте, я работаю над:Python - в чем смысл использования True :?

if True: 
    x = 5 
    y = 6 
    return x+y 
else: 
    return 'Something 

Внутри если правда много условий и некоторые из них будут также возвращать функцию уже. Зачем кому-то писать так? В коде также содержались некоторые другие ошибки, но было просто интересно об утверждении if: поскольку это не имело для меня никакого смысла. Наверное, тоже довольно глупо спрашивать об этом, но было интересно, хе-хе.

ответ

8

Это может быть остаток отладки или рефакторинга. Возможно, что вместо True здесь было состояние или переменная, но теперь она была заменена на True. Разработчик, возможно, оставил его там без рефакторинга или очистки его полностью.

Если вы можете свободно редактировать код по своему усмотрению, и вы уверены, что он больше не нужен, вы можете его удалить. В действительности нет смысла иметь код в вашей кодовой базе, который никогда не будет работать.

0

Это может быть флаг, используемый для отладки.

1

Не имеет никакого смысла для меня, мой догадка, что кто-то хочет иметь два различных пути кода, которые он может чередоваться между a'la использованием #if 1 .. #else ->#if 0 ... для отладки или подобных целей.

Другая возможность заключается в том, что, как это было предложено @SimeonVisser, оригинальный разработчик был рефакторинг или очистки коды (и не иметь эмулятор, который позволяет легко удалить 1 шаг отступа от блока кода)

0

Он просто используется для обеспечения того, чтобы блок else: никогда не выполнялся.
Я использовал if True: для некоторых блоков, чтобы гарантировать, что мой код действительно делает то, что я хочу. Использование для отладки или рефакторинга.
В целом, это не имеет смысла использовать это в приложении, но для тестирования или отладки это как-то приемлемо.

5

True не обязательно означает True

True = False 
if not True : 
    print "True is false" # This prints ok 

Честно говоря, я не думаю, что кто-то код, как это.

+0

Не совсем взаимосвязано, но мне нравится ответ, узнал что-то новое, я уверен, что предыдущий разработчик не кодировал таким образом: O –

+0

плюс 1 за то, что я смеюсь. – juggler

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