Porządek w kodzie: importy, moduły i magia if __name__ == "__main__

W świecie Pythona przejrzystość to podstawa. Zamiast tworzyć jeden gigantyczny plik, warto dzielić projekt na mniejsze, logiczne części. Dzięki temu kod staje się łatwiejszy w utrzymaniu, testowaniu i ponownym wykorzystaniu.


Moduły i klasy: budowanie z klocków

Każdy plik .py, który tworzymy, jest modułem. Może on zawierać funkcje, zmienne, ale przede wszystkim klasy. Importowanie pozwala nam korzystać z gotowych rozwiązań w różnych częściach projektu.

import moduł: Daje dostęp do całej zawartości.
from moduł import element: Pozwala wyciągnąć z modułu dokładnie to, czego potrzebujemy — może to być klasa, funkcja, instancja lub konkretna wartość (zmienna). Takie podejście sprzyja minimalizmowi, ponieważ nie zaśmiecamy pamięci i przestrzeni nazw całymi bibliotekami, gdy potrzebujemy tylko jednego narzędzia.

O co chodzi z if __name__ == "__main__"?

To jedna z najważniejszych konstrukcji w Pythonie. Kiedy uruchamiamy plik, Python ustawia specjalną zmienną wewnętrzną __name__.

Dlaczego to jest ważne?

Bez tej instrukcji, każda funkcja wywołana "luzem" w module wykonałaby się automatycznie podczas samego importu. Dzięki if __name__ == "__main__" mamy pewność, że kod testowy lub demonstracyjny uruchomi się tylko wtedy, gdy tego chcemy.


Praktyczny przykład: Monitor Systemowy (Licencja MIT)

Ten skrypt to prosty przykład modularności. Klasa SystemInfo zbiera dane, a sekcja __main__ służy jako demo działania.

# SAKS_Core_Example.py
# Autor: Kajotte Studio | Licencja: MIT
# Opis: Demonstracja modułowości i zbierania podstawowych danych systemowych.

import platform
import os

class SystemInfo:
    """Klasa odpowiedzialna za gromadzenie informacji o środowisku."""
    
    def __init__(self):
        self.os_name = platform.system()
        self.node_name = platform.node()
        self.release = platform.release()

    def get_summary(self):
        """Zwraca sformatowany raport systemowy."""
        return f"System: {self.os_name} | Host: {self.node_name} | Wersja: {self.release}"

# Sekcja zabezpieczająca przed niechcianym wykonaniem przy imporcie
if __name__ == "__main__":
    # Ten kod wykona się TYLKO przy bezpośrednim uruchomieniu pliku
    print("--- Kajotte Studio: Demo Modułu SystemInfo ---")
    monitor = SystemInfo()
    print(monitor.get_summary())
    print(f"Bieżący katalog: {os.getcwd()}")
    print("---------------------------------------------")

Jak to wykorzystać?

Jeśli stworzysz inny plik i napiszesz w nim
from SAKS_Core_Example import SystemInfo
będziesz mógł używać klasy, ale napisy --- Demo --- nie zaśmiecą Ci konsoli. To czyste, profesjonalne i zachęcające do dalszego rozwoju własnych narzędzi!


👇

▒ Przewodnik po blogu: wszystkie posty o programowaniu w jednym miejscu. ▹ Zobacz