O Python possui muitos módulos (como re
) que executam um conjunto específico de ações. Você pode chamar as funções deste módulo e obter resultados, e o módulo como um todo tem uma idéia por trás dele (neste caso, lidar com expressões regulares).
As classes parecem fazer quase exatamente a mesma coisa, mas também parecem usar propriedades um pouco mais do que módulos.
De que maneiras os módulos são diferentes das classes? (Eu sei que não posso subclassificar um módulo, mas é isso?) Quando devo usar uma classe em vez de um módulo?
random
módulo. Não me lembro se isso é verdadere
, no entanto.Respostas:
Um módulo python nada mais é do que um pacote para encapsular código reutilizável. Módulos geralmente, mas nem sempre, residem em uma pasta com um
__init__.py
arquivo dentro dela. Os módulos podem conter funções, mas também classes. Os módulos são importados usando aimport
palavra - chaveSaiba mais sobre os módulos Python nesses links:
https://docs.python.org/2/tutorial/modules.html (Python 2) https://docs.python.org/3/tutorial/modules.html (Python 3)
As classes, por outro lado, podem ser definidas no código principal do aplicativo ou nos módulos importados pelo aplicativo. Classes são o código da Programação Orientada a Objetos e podem conter propriedades e métodos.
Saiba mais sobre as classes Python nesses links:
https://docs.python.org/2/tutorial/classes.html (Python 2) https://docs.python.org/3/tutorial/classes.html (Python 3)
fonte
__init__.py
arquivo.Se é um monte de funções puras, por exemplo
re
, eu as coloco em um módulo. Uso uma classe quando sei que há um estado que quero manter com esse código (por exemplo, um arquivo que é lido uma vez, mas cujos dados são usados por várias das funções).fonte