Добавление оператора if в блок try/ кроме

Я изучаю Python, и мне интересно, может ли улучшение моего кода с легким уровнем отладки с помощью оператора if в моем блоке try / Кроме того, быть хорошей практикой или есть лучший (или встроенный) способ сделать это.

#!/usr/bin/env python3
""" Testing conditions in try/except """

DEBUG_MODE = True
number = input("Type a integer: ")

try:
    number = int(number)
except ValueError as except_detail:
    if DEBUG_MODE:
        print("ValueError: «{}»".format(except_detail))
    else:
        print("«{}» is not an integer".format(number))            
else:
    print("Your number {} is an integer".format(number))

Я использую логическое значение, но уровень отладки list() работать на более чем 2 уровня.

Отчеты об ошибках также могут быть улучшены с помощью специальных инструкций ведения журнала уровня отладки.

2 ответа

Вы могли бы использовать Python logging Модуль для этого вы можете изменить логирование level Аргумент для записи уровня детализации записи вы хотите:

import logging

logging.basicConfig(filename='log.txt', filemode='a', level=logging.DEBUG)

try:
    number = int(number)
except ValueError as except_detail:
    logging.warning("ValueError: «{}»".format(except_detail))
    logging.info("«{}» is not an integer".format(number))         
else:
    logging.info("Your number {} is an integer".format(number))

Стандартная библиотека имеет модуль ведения журнала, предназначенный для этого: https://docs.python.org/2/library/logging.html имеет встроенные уровни журнала отладки, информации, предупреждений, ошибок, критических

Другие вопросы по тегам