🌞 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
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:
- Lokalna – zmienne wewnątrz funkcji,
- Globalna – zmienne zadeklarowane w module,
- 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
- Moduły pomagają organizować kod i unikać powielania funkcji.
- 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.
- W pliku
skrypt1.py, z pakietuoszaimportuj funkcjęgetcwdfrom os import getcwd - Wywołaj funkcję i przypisz wynik do zmiennej
current_path - Wypisz wartość zmiennej
current_path - W pliku
czas.pydodaj zmiennąaktualny_czas:from datetime import datetime aktualny_czas = datetime.now() - Zaimportuj moduł
czaswskrypt1.py - Wypisz wartość zmiennej
aktualny_czas - Zaimportuj pakiet
timei dodaj opóźnienie:import time time.sleep(20) - Ponownie wypisz wartość zmiennej
aktualny_czas - Przeładuj moduł
czas(importlib.reload()) - 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.