Python: перехват изменяемых аргументов по умолчанию - PullRequest
2 голосов
/ 18 ноября 2010

Я знаю о проблеме и как ее исправить. Я хотел бы попросить помощи в поиске этой проблемы в существующем коде.

Другими словами, я пытаюсь найти все места, где захоронена эта ловушка, чтобы я мог ее исправить.

Есть ли какой-нибудь инструмент, который может мне помочь?

Ответы [ 2 ]

10 голосов
/ 18 ноября 2010

Pylint имеет предупреждение для значений аргументов по умолчанию для изменяемых типов.Это настраивается, так что вы можете просто сделать это, если хотите.

3 голосов
/ 18 ноября 2010

Что не так с grep?

grep "^\s*def.*=(\[\]|\{\}|set\(\))"

Это найдет почти всех обычных преступников.

Если вы используете экземпляр одного из ваших изменяемых классов в качестве значения по умолчанию, вам придется проверить это отдельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...