Я всегда кодировался в стиле if not value, однако несколько руководств привлекли мое внимание, что, хотя этот стиль работает, у него, похоже, есть две потенциальные проблемы:
- Это не вполне читаемо;
if value is None, несомненно, более понятно. - Это может иметь последствия позже (и вызывать тонкие ошибки), поскольку такие вещи, как
[]и0, будут также оцениваться какFalse.
Я также начинаю применять эту идею к другим сравнениям, например:
-
if not valuevsif value is False -
if not valuevsif value is []
И вот список...
Вопрос в том, как далеко вы идете с принципом? Где рисовать линию, сохраняя ваш код в безопасности?
Должен ли я всегда использовать стиль if value is None независимо от того, что?