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