Skip to content

🌞 Moduły i przestrzenie nazw

Wprowadzenie

W Pythonie moduły i przestrzenie nazw odgrywają kluczową rolę w organizacji kodu. Moduły pozwalają na podzielenie kodu na mniejsze, łatwiejsze w zarządzaniu części, a przestrzenie nazw pomagają uniknąć konfliktów pomiędzy nazwami zmiennych, funkcji czy klas.


Moduły w Pythonie

Czym jest moduł?

Moduł w Pythonie to plik .py, który zawiera zmienne, funkcje i klasy. Dzięki nim można podzielić kod na niezależne sekcje, co ułatwia jego ponowne użycie oraz utrzymanie.

Tworzenie i używanie modułu

Załóżmy, że chcemy stworzyć moduł do operacji matematycznych. Tworzymy plik matematyka.py:

def dodaj(a, b):
    return a + b

def odejmij(a, b):
    return a - b
Teraz możemy zaimportować go w innym skrypcie:
import matematyka

wynik = matematyka.dodaj(5, 3)
print(f'Wynik dodawania: {wynik}')

Możemy też importować tylko wybrane funkcje:

from matematyka import odejmij

wynik = odejmij(10, 4)
print(f'Wynik odejmowania: {wynik}')


Przestrzenie nazw

Przestrzeń nazw to mechanizm pozwalający unikać konfliktów między zmiennymi i funkcjami. Python organizuje przestrzenie nazw w hierarchiczny sposób:

  1. Lokalna – zmienne wewnątrz funkcji,
  2. Globalna – zmienne zadeklarowane w module,
  3. Wbudowana – standardowe funkcje Pythona jak print().

Przykład użycia przestrzeni nazw

x = 10  # Zmienna globalna

def funkcja():
    x = 5  # Zmienna lokalna
    print(f'Wartość x wewnątrz funkcji: {x}')

funkcja()
print(f'Wartość x na poziomie globalnym: {x}')

Podsumowanie

  1. Moduły pomagają organizować kod i unikać powielania funkcji.
  2. Przestrzenie nazw zapobiegają konfliktom nazw i organizują zmienne w hierarchii.

Dzięki tym mechanizmom Python zapewnia elastyczność w organizacji kodu i jego efektywne zarządzanie!

📝 Zadania

Na potrzeby tego rozdziału pracuj w katalogu python1course/zaj01. Utwórz w nim pliki skrypt1.py oraz czas.py zgodnie z poniższymi punktami.

  1. W pliku skrypt1.py, z pakietu os zaimportuj funkcję getcwd
    from os import getcwd
    
  2. Wywołaj funkcję i przypisz wynik do zmiennej current_path
  3. Wypisz wartość zmiennej current_path
  4. W pliku czas.py dodaj zmienną aktualny_czas:
    from datetime import datetime
    aktualny_czas = datetime.now()
    
  5. Zaimportuj moduł czas w skrypt1.py
  6. Wypisz wartość zmiennej aktualny_czas
  7. Zaimportuj pakiet time i dodaj opóźnienie:
    import time
    time.sleep(20)
    
  8. Ponownie wypisz wartość zmiennej aktualny_czas
  9. Przeładuj moduł czas (importlib.reload())
  10. Po raz trzeci wypisz wartość zmiennej aktualny_czas

Zwróć uwagę na to, kiedy zmieniła się wartość zmiennej. Zastanów się, kiedy inicjowana jest zmienna aktualny_czas.