Как правильно организовать определение класса Python по отношению к вспомогательным файлам для этого класса?

Вероятно, об этом спрашивали раньше, но я не мог найти ответа на свой конкретный вопрос (довольно общий ...)

Вот пример моего вопроса. Скажем, мой пакет называется «школа», и у меня есть класс с именем «книга», рядом с которым будут файлы .py, содержащие основу его методов.Я не уверен, как организовать все это так, чтобы операторы импорта не выглядели странно.

Как мне организовать файлы?

/school/
        pencil/
        book/
             __init__.py
             read.py
             burn.py
             book.py

Я хочу иметь возможность делать что-то вроде этого, поскольку это наиболее разумно:

from school import Book
b = Book(name="The Bible")
b.read()

Но исходя из файловой структуры выше, я должен был бы сделать:

from school.book import Book
b = Book(....etc

ИЛИ

from school import book
b = book.Book(...etc

Это неудобно / однообразно ... Что мне здесь не хватает?

6
задан Ian 4 August 2011 в 00:53
поделиться