W automatyzacji nie uciekniesz od programowania. Najpopularniejszym językiem jest Python i śmiało można powiedzieć, że musisz go w dzisiejszych czasach znać. W przygotowywanej przez CiscoPress do wydania książce CCNP and CCIE Enterprise Core ENCOR 350-401
Official Cert Guide znajdziemy cały rozdział poświęcony automatyzacji z przykładami rozwiązań w języku Python. No i oczywiście jest cała ścieżka certyfikacji Cisco DevNet, w której programowanie odgrywa ogromną rolę. Dlatego startuję z nowym cyklem Wtorki z Pythonem, w ramach którego przeczytacie krótsze i dłuższe teksty poświęcone językowi Python i realizacji różnych zadań, z którymi możecie się w przyszłości spotkać, za pomocą tego języka. Importowanie bibliotek czy funkcji w języku Python to jedna z podstawowych czynności nawet w prostych programach dlatego jej poświęcę pierwszy z artykułów.
Jak działa importowanie bibliotek w języku Python
Do importowania stosujemy słowo kluczowe import
. Zazwyczaj jest to pierwsza czynność, jaką wykonujemy w kodzie każdego programu czy modułu. Jednak importować możemy także wewnątrz kodu funkcji czy klasy.
class Czasomierz: import time def licznik(self): self.time.sleep(2)
Biblioteka, którą chcemy zaimportować do programu, musi być możliwa do odnalezienia przez plik wykonywalny języka Python. Ponieważ środowisko uruchomienia aplikacji może być zwirtualizowane i izolowane za pomocą venv
, pamiętaj, że moduły zainstalowane globalnie zazwyczaj nie są w nich osiągalne. Python szuka bibliotek według następującej kolejności analizowania lokalizacji:
- Katalog główny programu
- Katalogi w ścieżce opisanej w zmiennej PYTHONPATH jeżeli została ona zdefiniowana
- Katalogi biblioteki standardowej (róznie w zależności od systemu operacyjnego)
W efekcie działania algorytmu powstaje zmienna sys.path
zawierająca listę katalogów w kolejności przeszukiwania. Możemy ją w prosty sposób wyświetlić:
import sys print(sys.path)
Mało kto pamięta, że wgraną bibliotekę za pomocą polecenia import
możemy w dowolnej chwili usunąć z pamięci poleceniem del
.
import sys print(sys.path) del sys
Importowanie biblioteki lub jej wybranych funkcji
W powyższych przykładach importowaliśmy całą bibliotekę. Do poszczególnych jej metod czy obiektów odwoływaliśmy się poprzez bezpośrednie ich wywołanie poprzedzone nazwą biblioteki, tak jak to miało miejsce w odwołaniu sys.path. Jeżeli nazwa biblioteki jest długa i nie chcemy jej za każdym razem powtarzać, możemy przypisać jej alias.
import sys as s print(s.path)
Z biblioteki możemy także zaimportować jedynie pojedyncze jej elementy. W takim wypadku, aby się do nich odwołać potem w kodzie naszego programu, nie poprzedzamy ich już nazwą samej biblioteki.
from sys import path print(path)
Stosując ten sposób importowania, musimy bardzo uważać na to, by w różnych bibliotekach nazwy metod się nie pokrywały. Każde kolejne zaimportowanie funkcji o tej samej nazwie nadpisze poprzednie jej wgranie. Dlatego nie jest zalecane stosowanie konstrukcji importującej wszystkie obiekty z biblioteki, na przykład from sys import *
.