Ответ 1
Модуль logging
был разработан отдельной компанией в 2001 году и был в значительной степени основан на Log4j. Как таковой он следует соглашениям об именах, выбранным автором оригинала, которые отражают выбор Log4j; последний имеет метод getLogger()
.
Только через год PEP 282 предлагалось добавить его в стандартную библиотеку, и к этому времени было назначено соглашение об именах.
Это известная проблема с пакетом, но это не единственный пакет, нарушающий PEP. Из связанной Wiki:
PEP8 говорит, что важна последовательность с этим руководством по стилю. Согласованность в рамках проекта более важна. Согласованность внутри одного модуля или функции наиболее важна.
- Итак, правда, но не может быть изменено из-за обратной совместимости. logging2 может быть. - techtonik
- Это низкий приоритет прямо сейчас, если нет инициативы по обеспечению остальной части stdlib для соответствия PEP8. - VinaySajip
И последнее, но не менее важное: styleleguide имеет смысл сказать, применяя стилегиды:
Глупое согласование - это Хобгоблин Маленьких Разумов
Руководство по стилю - это последовательность. Важное значение имеет согласованность с этим руководством по стилю. Согласованность в рамках проекта более важна. Согласованность внутри одного модуля или функции наиболее важна.
Но самое главное: знать, когда быть непоследовательным - иногда руководство по стилю просто не применяется. Когда вы сомневаетесь, используйте свое лучшее суждение. Посмотрите на другие примеры и решите, что выглядит лучше всего. И не стесняйтесь спрашивать!
В частности: не нарушайте обратную совместимость только для соответствия этому PEP!
"Фиксация" logging
нарушит совместимость, которая просто не стоит.