Как линтеру отловить копию по ссылке в python? - PullRequest
1 голос
/ 07 августа 2020

После капитального ремонта кода (изменение структуры данных, алгоритма и рефакторинга) закралась очень хитрая ошибка.

    self.thrown = board[c.THROWN]
* 1003 подумал, когда писал эту строчку. Однако board оказывается 2D-массивом numpy, и доступ к нему по единственному индексу возвращает ссылку на список, а не на копию. Это вызвало изменение глобального состояния. Отслеживание этого было очень утомительным, поскольку все тесты (модульные и интеграционные) прошли отлично. Решение было тривиальным, просто создайте локальную версию с board.copy(). Однако мой вопрос заключается в предотвращении этой ошибки в первую очередь или, по крайней мере, в ограничении времени отладки. Какой тип линтера / анализа кода мог это обнаружить?
...