Python ma wiele modułów (takich jak re
), które wykonują określony zestaw akcji. Możesz wywoływać funkcje tego modułu i uzyskiwać wyniki, a moduł jako całość ma za sobą pomysł (w tym przypadku dotyczy wyrażeń regularnych).
Klasy wydają się robić dokładnie to samo, ale wydają się również używać właściwości nieco więcej niż modułów.
W jaki sposób moduły różnią się od klas? (Wiem, że nie mogę podklasować modułu, ale czy to jest to?) Kiedy powinienem użyć klasy zamiast modułu?
random
moduł. Nie pamiętam jednak, czy to prawdare
.Odpowiedzi:
Moduł python to nic innego jak pakiet do enkapsulacji kodu wielokrotnego użytku. Moduły zwykle, ale nie zawsze, znajdują się w folderze, w którym znajduje się
__init__.py
plik. Moduły mogą zawierać funkcje, ale także klasy. Moduły są importowane za pomocąimport
słowa kluczowego.Dowiedz się więcej o modułach Python pod tymi linkami:
https://docs.python.org/2/tutorial/modules.html (Python 2) https://docs.python.org/3/tutorial/modules.html (Python 3)
Z drugiej strony, klasy można zdefiniować w głównym kodzie aplikacji lub w modułach zaimportowanych przez aplikację. Klasy są kodowaniem programowania obiektowego i mogą zawierać właściwości i metody.
Dowiedz się więcej o klasach Python pod tymi linkami:
https://docs.python.org/2/tutorial/classes.html (Python 2) https://docs.python.org/3/tutorial/classes.html (Python 3)
źródło
__init__.py
plikiem.Jeśli jest to garść czystych funkcji, np.
re
Umieszczam je w module. Korzystam z klasy, gdy wiem, że istnieje stan, który chcę zachować z tym kodem (np. Plik, który jest wczytywany raz, ale którego dane są używane przez kilka funkcji).źródło