Почему инспектор кода Pycharm жалуется на "d = {}"?

При инициализации словаря с d = {} инспектор кода Pycharm выдает предупреждение, говоря:

Это создание словаря может быть переписано как словарный литерал.

Если я перепишу его d = dict(), предупреждение исчезнет. Поскольку {} уже является словарным литералом, я уверен, что сообщение ошибочно. Более того, похоже, что и d = {}, и d = dict() являются валидными и пифоническими.

Этот смежный вопрос, похоже, позволяет сделать вывод, что выбор - это просто вопрос стиля/предпочтения: различия между "d = dict()" и "d = {}"

Почему Pycharm жалуется на d = {}?

UPDATE:

Мак все понял. Предупреждение действительно относилось к нескольким строкам, а не только к той, которая была отмечена.

Похоже, Pycharm ищет последовательность последовательных утверждений, в которых вы инициализируете словарь, а затем устанавливаете значения в словаре. Например, это вызовет предупреждение:

d = {}
d['a'] = 1

Но этот код не вызовет:

d = {}
pass
d['a'] = 1

184
задан Community 23 May 2017 в 02:34
поделиться