Импортирование классов
191
Импортирование всех классов из модуля
Для импортирования всех классов из модуля используется следующий синтаксис:
from
имя_модуля
import *
Использовать этот способ не рекомендуется по двум причинам. Прежде всего,
бывает полезно прочитать команды
import
в начале файла и получить четкое пред-
ставление о том, какие классы используются в программе, а при таком подходе
неясно, какие классы из модуля нужны программе. Также возможны конфликты
с именами в файле. Если вы случайно импортируете класс с именем, уже при-
сутствующим в файле, в программе могут возникнуть коварные ошибки. Почему
я привожу описание этого способа? Хотя использовать его не рекомендуется, ско-
рее всего, вы встретите его в коде других разработчиков.
Итак, если вам нужно импортировать большое количество классов из модуля,
лучше импортировать весь модуль и воспользоваться синтаксисом
имя_модуля
.
имя_класса
. Хотя вы не видите перечень всех используемых классов в начале
файла, по крайней мере ясно видно, где модуль используется в программе. Также
предотвращаются потенциальные конфликты имен, которые могут возникнуть при
импортировании каждого класса в модуле.
Импортирование модуля в модуль
Иногда классы приходится распределять по нескольким модулям, чтобы избежать
чрезмерного разрастания одного файла и хранения несвязанных классов в одном
модуле. При хранении классов в нескольких модулях может оказаться, что один
класс из одного модуля зависит от класса из другого модуля. В таких случаях не-
обходимый класс можно импортировать в первый модуль.
Допустим, класс
Car
хранится в одном модуле, а классы
ElectricCar
и
Battery
—
в другом. Мы создадим новый модуль с именем
electric_car .py
(он заменит файл
electric_car .py
, созданный ранее) и скопируем в него только классы
Battery
и
ElectricCar
:
Достарыңызбен бөлісу: