Зачем говорить х = х в Python?
Вопрос
В этот файл , в функции cross_from_below (x, threshold)
есть строка с надписью threshold = threshold
. Какой смысл этой линии? Делает ли это что-то иначе, чем если бы этой команды не было?
Решение
Нет смысла в этом назначении. Это, вероятно, просто осталось и должно быть удалено. Следующая функция почти идентична и не имеет ее.
Другие советы
Нет, в приведенном вами конкретном примере эта строка (безвредна, но) избыточна - действительно, следующая функция (перекрестный порог сверху, а не снизу) практически идентична (за исключением, конечно, направления сравнений). ), лишено этого дополнительного назначения, но работает точно так же.
Единственный случай, когда что-то вроде threshold = threshold
будет иметь значение, - это оператор def
, в котором идиома используется для принудительного раннего связывания имени ( в нем используется тот факт, что значения по умолчанию оцениваются во время def
, т. е. «ранний» ;-). Но это не то, что делает этот код - просто добавьте его для полноты.
Это может что-то значить. Например, если threshold
является свойством класса, то его присвоение может вызвать метод установки.
Но в данном случае я думаю, что это опечатка. Я посмотрел на changelog , и нет никаких намеков на то, что это было сделано намеренно по любой причине.
Или это может быть один из тех случаев, когда в какой-то момент имело смысл написать что-то вроде:
self.threshold = threshold
потому что функция была методом некоторого класса, который должен был поддерживать порог. (В таком случае это будет означать что-то еще, не так ли?)