Я пытаюсь узнать больше о Python, просмотрев код в популярных библиотеках. Первая библиотека, которую я затронул, - python-requests
от Kenneth Reitz.logging.NullHandler и __init__.py расположение файла в Python-запросах
То, что я сделал, это просто git clone <request_repo_url_from_github>
, и теперь я проверяю код.
Я просмотрел файл __init__.py
в requests/packages
.
У меня есть несколько вопросов, чтобы спросить:
Почему
__init__.py
внутриrequests/packages
, должен не быть__init__.py
файл подrequests
напрямую? Или это просто, потому что это непосредственно клонированный и удаленный пакет от github, что так нравится?Второй вопрос относится к приведенному выше кодексу ниже. Что я хотел бы знать, так это то, что делает
NullHandler
? Я взглянул на документацию here, что значит иметь обработчик «no-op». Где этот обработчик будет использоваться библиотечными разработчиками? Я имею в виду, что особенного в этом?
import logging
try: # Python 2.7+
from logging import NullHandler
except ImportError:
class NullHandler(logging.Handler):
def emit(self, record):
pass
Возможно, вас заинтересует ['logging_tree'] (http://rhodesmill.org/brandon/2012/logging_tree/), который отображает все регистраторы в виде древовидной диаграммы. –