Список уровней совместимости журналов между Python 2 и Python 3
Чтобы получить список уровней ведения журнала в Python 2, я должен вызвать это:
logging._levelNames.keys()
В то время как Python 3 logging module имеет это:
list(logging._nameToLevel)
Я просто добавляю six
в мой проект, чтобы обеспечить совместимость между Python 2 и Python 3. Какой самый чистый способ выяснить эту проблему совместимости?
1 ответ
Вы не должны сознательно обращаться к атрибуту, который начинается с_
обычно это означает, что это закрытый атрибут, и его нельзя использовать в другом месте.
А поскольку уровни ведения журнала - это всего лишь короткий список, вы можете просто скопировать, вставить и создать собственный список:
levels = ['CRITICAL', 'FATAL', 'ERROR', 'WARN', 'WARNING', 'INFO', 'DEBUG', 'NOTSET']
Кстати, если вы заметили, logging._levelNames.keys()
а также list(logging._nameToLevel)
дает разные результаты, первый также содержит некоторые целые числа [0, 10, 20, 30, 40, 50]
в то время как последний не делает.