OP запрашивает способ выделения ошибок PEP8 в PyCharm, но есть и другой способ (гораздо более понятный, на мой взгляд), чтобы увидеть нарушения (извлечено из документации PyCharm ). Открытый код | Изучите код и друзей:
Окно инструмента проверки
Просмотр | Инструмент Windows | Проверка:
- Вы можете получить доступ к окну инструмента таким образом, только когда оно уже открыто через Код | Проверьте код.
- После того, как вы вручную отключили окно инструментов, нажав кнопку «Закрыть», окно инструментов снова станет доступно только через Код | Проверьте код. Окно инструмента проверки отображает результаты проверки на отдельных вкладках
Только что протестировал его на PyCharm Community Edition , и он работал как брелок (нет игра слов каламбур).
При чтении стандарта здесь кажется, что указатель является изменчивым, но не фактическое содержимое самой структуры. Я интерпретировал это из приведенного примера, const t * volatile p
(внизу ссылки). Формулировка, однако, расплывчата, но я думаю, что это был бы аналогичный пример:
struct foo {
int bar;
};
struct foo *volatile x;
Обратите внимание, что я не пробовал это, поэтому я могу быть совершенно неверным ... это просто то, что я понял из беглого прочтение стандарта.
Кроме того, cdecl устраняет некоторые неясности. Например:
cdecl> объяснить
volatile struct x * foo
объявить foo как указатель на volatile struct x
, тогда как:
cdecl> объяснять
struct x * volatile foo
объявить foo как изменчивый указатель на структуру x
В одном случае структура является изменчивой.
В вашем примере вы получить изменчивый указатель, вот и все, изменчивость не распространяется на объект.
Расширение моего ответа volatile - это расслабленный атомарный объект, что означает, что доступ является атомарным, а инструкции - нет. Таким образом, вы не можете безопасно увеличивать или уменьшать изменчивый указатель, поэтому вы не можете использовать изменчивый указатель для взаимодействия, а только операции сохранения / загрузки (присваивания). То же самое касается int или другого числа, и volatile также не будет работать с числами с плавающей запятой, потому что они обрабатываются в конвейере FPU, а не в ЦП. В общем, volatile не слишком полезны, но компиляторы Microsoft автоматически помещают защиту инструкций вокруг volatiles, делая их истинными атомарными значениями, но это не является частью стандарта.