В Python есть много модулей (таких как re
), которые выполняют определенный набор действий. Вы можете вызывать функции этого модуля и получать результаты, и у модуля в целом есть идея (в данном случае работа с регулярными выражениями).
Классы, кажется, делают почти то же самое, но они также, кажется, используют свойства немного больше, чем модули.
Чем модули отличаются от классов? (Я знаю, что не могу создать подкласс модуля, но так ли это?) Когда мне следует использовать класс вместо модуля?
random
модуль. Я не помню, правда ли этоre
, однако.Ответы:
Модуль Python - это не что иное, как пакет для инкапсуляции многократно используемого кода. Модули обычно, но не всегда, находятся в папке с
__init__.py
файлом внутри. Модули могут содержать функции, но также и классы. Модули импортируются с использованиемimport
ключевого слова.Узнайте больше о модулях Python по этим ссылкам:
https://docs.python.org/2/tutorial/modules.html (Python 2) https://docs.python.org/3/tutorial/modules.html (Python 3)
Классы, с другой стороны, могут быть определены в коде вашего основного приложения или внутри модулей, импортированных вашим приложением. Классы являются кодом объектно-ориентированного программирования и могут содержать свойства и методы.
Узнайте больше о классах Python по этим ссылкам:
https://docs.python.org/2/tutorial/classes.html (Python 2) https://docs.python.org/3/tutorial/classes.html (Python 3)
источник
__init__.py
файлом.Если это набор чистых функций, например
re
, я помещаю их в модуль. Я использую класс, когда знаю, что есть состояние, которое я хочу сохранить с этим кодом (например, файл, который читается один раз, но данные которого используются несколькими функциями).источник