Конструкторы в python запускаются для инициализации объектов. Объекты создаются во время выполнения, поэтому конструкторы запускаются во время выполнения. Во время компиляции в python код не выполняется.
Некоторые аспекты я хотел бы добавить о регистрирующихся методах.
Библиотеки: Log4J и Log4Net (для Java и.NET соответственно)
От сайта Log4J:
Вставка операторов журнала в Ваш код является не использующим высокие технологии методом для отладки его. Это может также быть единственный путь, потому что отладчики не всегда доступны или применимы. Это часто имеет место для распределенных приложений.
С другой стороны, некоторые люди утверждают, что операторы журнала загрязняют четкость уменьшения и исходный код. (Мы полагаем, что обратное верно). На языке Java, где препроцессор не доступен, операторы журнала увеличивают размер кода и уменьшают его скорость, даже когда вход выключен. Учитывая, что довольно размерное приложение может содержать тысячи операторов журнала, скорость имеет особое значение.
С log4j возможно позволить регистрироваться во времени выполнения, не изменяя двоичный файл приложения. log4j пакет разработан так, чтобы эти операторы могли остаться в поставленном коде, не подвергаясь большой стоимости производительности. Входом поведения можно управлять путем редактирования конфигурационного файла, не касаясь двоичного файла приложения.
Вход снабжает разработчика подробным контекстом для отказов приложения. С другой стороны, тестирование обеспечивает гарантию качества и уверенность в приложении. Вход и тестирование не должны быть перепутаны. Они дополнительны. Когда вход мудро используется, это может оказаться существенным инструментом.
Было некоторое обсуждение этого в других вопросах. Если Вы, человек C# смотрит на то, Что лучшее регистрирует решение для c# сетевых 3,5 проектов или Какова Ваша философия входа?
Поиск Входа и Вы найдете намного больше.:)