Структура файла / модуля в Python - PullRequest
3 голосов
/ 13 января 2011

Итак, я только начинаю работать с Python и в настоящее время пробираюсь через http://diveintopython3.ep.io/. Примеры кода хороши, но подавляющее большинство из них представляют собой небольшие фрагменты из четырех строк, и я хочу увидеть немного больше общей картины.

Насколько я понимаю - и поправьте меня, если я ошибаюсь - каждый файл .py становится «модулем», а группа модулей в каталоге становится «пакетом» (по крайней мере, это так. если я создам __init__.py файл в этом каталоге). Что это, если у меня нет файла __init__.py?

Так как же выглядит каждый файл "модуля"? Я обычно определяю только один класс в файле? Что-нибудь еще входит в этот файл, кроме определения класса и, возможно, нескольких команд import?

Ответы [ 3 ]

5 голосов
/ 13 января 2011

Что это, если у меня нет файла __init__.py?

Это просто папка.

Обычно я определяю только одинкласс в файле?

Зависит.Не обязательно.

В этот файл входит что-то еще, кроме определения класса и, возможно, нескольких команд импорта?

Вы можете поместить все, что захотите.Все, что является действительным Python, по крайней мере.

1 голос
/ 14 января 2011

Не совсем ответ, но всегда стоит взглянуть на стандартную библиотеку, чтобы увидеть, как они используют __init__.py в пакетах типа sqlite3 против модулей типа SimpleHTTPServer

0 голосов
/ 13 января 2011

Фалмарри отвечает на это довольно хорошо, но просто добавлю:

__init__.py может быть пустым файлом (и обычно это так), но он также может выполнить код инициализации для пакета или установить переменную __all__.

...