Moduł sprawdzania Pythona

Moduł sprawdzania Pythona

Przegląd

Kiedyś zastanawiałem się, jak fajnie byłoby mieć moc, aby uzyskać kod źródłowy innego modułu Pythona we własnym programie? To otworzy pomysły i drzwi do tak wielu możliwości, takich jak przetwarzanie kodu źródłowego modułu, dostosowuje go do dokumentacji, automatycznie tworząc dokumentację kodu. Powiem ci, że jest to w 100% możliwe z Python's sprawdzać moduł.

Moduł sprawdzania Pythona

Pyton sprawdzać Moduł pozwala nam sprawdzić obiekty uruchomionego programu, uzyskać kod źródłowy modułu, uzyskać powiązany z tym modułem, przeczytaj podpis metody funkcji w Python i wiele więcej. W ten sposób możemy budować projekty, które tworzą dokumentację kodów na żywo dla naszych własnych projektów. Oznacza to, że musimy tylko komentować nasz kod Python i możemy pozostawić resztę zadania samemu Pythonowi, aby stworzyć dla nas dokumentację.

Za pomocą przykładowego kodu

Zrozumieć, jak Python's sprawdzać Moduł działa, użyjemy jednej z naszych własnych przykładowych definicji kodu w Pythonie, która po prostu pokazuje dziedziczenie w Pythonie i sposób tworzenia obiektów. Spójrzmy na przykładowy moduł, którego będziemy używać w reszcie samouczka tutaj:

def module_level_function (arg1, arg2 = 'default', *args):
„” „Jestem funkcją na poziomie modułu.„” ”
local_var = arg1 * 2
zwróć local_var
Osoba klasowa (obiekt):
„” „Definicja klasy osoby.„” ”
def __init __ (ja, imię):
samego siebie.Nazwa = nazwa
def get_name (self):
„Zwraca nazwę instancji."
powrót do siebie.nazwa
osobis_obj = osobista ('próbka_instance')
Student klasy (osoba):
„” „To jest klasa uczniów, klasa dziecka.
„” ”
# Ta metoda nie jest częścią klasy osoby.
def do_something_else (self):
„” „Wszystko można zrobić tutaj.„” ”
def get_name (self):
„Zastępuje wersję z klasy osoby”
Powrót „Student (” + jaźń.Nazwa + ')'

Zdefiniowaliśmy przykładowy moduł, abyśmy mogli zacząć wyodrębniać kod źródłowy i inne komponenty z niego w późniejszych przykładach. Zacznijmy.

Inspekcyjny moduł

Powyższy moduł Pythona jest zapisywany w pliku o nazwie Linuxhint.py W tym samym katalogu, w którym zrobimy nasze nowe skrypty Pythona. Możemy sprawdzić moduł w Pythonie, najpierw dokonując importu. To oświadczenie importu będą obecne we wszystkich skryptach, które piszemy również w późniejszych sekcjach. Oto przykładowy program, z którym sprawdzamy nasz moduł:

Importuj sprawdzanie
Importuj Linuxhint
Dla nazwy dane w Inspekcji.GetMembers (Linuxhint):
Jeśli nazwa.zaczynać z('__'):
Kontynuować
print (': !R'.format (nazwa, dane))

Oto, co wracamy z tym poleceniem:

Moduł sprawdzania Pythona


Wyjście dostarcza nam szczegółów na temat liczby klas, funkcji i obiektów w tym module po uruchomieniu skryptu.

Sprawdzanie zajęć w module

Powyższy przykład, który pokazaliśmy, przedstawił wszystkie szczegóły modułu jednocześnie. Jeśli chcemy uzyskać tylko informacje związane z klasami w module, możemy uzyskać to samo co:

Importuj sprawdzanie
Importuj Linuxhint
W przypadku klucza dane w Inspekcji.GetMembers (Linuxhint, sprawdź.isclass):
print (': !R'.format (klucz, dane))

Zobaczmy dane wyjściowe tego polecenia:

Python Inspect Module Class


Wyjście jest dokładnie takie samo, tylko że tym razem tylko definicje klas zostały wydrukowane na konsolę.

Sprawdzanie metod w klasie

Metody to ta, która określa zachowanie klasy w OOPS i dostarczają informacji o tym, jak zachowanie obiektów zostanie zmodyfikowane w miarę ich wywoływania metod. Wynika to z tego powodu, ważne jest, aby udokumentować wszystkie metody istniejące w klasie lub module. Możemy uzyskać informacje związane z taką metodą:

Importuj sprawdzanie
z Pprint Import Pprint
Importuj Linuxhint
pprint (sprawdź.GetMembers (Linuxhint.Osoba, sprawdź.Isfunkcja))

Oto, co wracamy z tym poleceniem:

Sprawdzanie metody klasy


Wyjście wyświetla po prostu definicję metody każdej obecnej metody.

Sprawdzanie obiektów klasy

Kiedy introspekcie, ile miejsca jest zajęte podczas uruchamiania skryptu Pythona, ważne jest, aby wiedzieć, ile obiektów dla klasy jest tworzonych dla klasy w programie. Aby to wiedzieć, możemy uzyskać informacje o obiektach klasy w module:

Importuj sprawdzanie
z Pprint Import Pprint
Importuj Linuxhint
osoba = Linuxhint.Osoba (nazwa = 'inspekt_getmembers')
pprint (sprawdź.Getmembers (osoba, sprawdź.ismethod))

Zobaczmy dane wyjściowe tego polecenia:

Sprawdzanie obiektów klasy


To również drukuje adres pamięci, w którym ten obiekt żyje w trakcie tego programu.

Sprawdzanie dokumentacji klasy

Docstring modułu to część, która faktycznie informuje użytkownika lub programistę, że o czym jest ten moduł i jakie funkcje zapewnia. Dzięki module inspekcji możemy uzyskać dokument pełnego modułu, aby lepiej go udokumentować. Zobaczmy, jak możemy wyodrębnić DocString dla klasy:

Importuj sprawdzanie
Importuj Linuxhint
Drukuj („Osoba.__doc__: ')
Drukuj (Linuxhint.Osoba.__doc__)
wydrukować()
print („getDoc (osoba):”)
Drukuj (sprawdź.getDoc (Linuxhint.Osoba))

Oto, co wracamy z tym poleceniem:

Uzyskanie dokumentów na zajęcia

Sprawdzanie źródła klasy

Na koniec możemy zobaczyć, w jaki sposób możemy wyodrębnić kompletny kod źródłowy klasy w programie Python. Jest to ważna funkcja, a także pomaga nam zbudować narzędzia dokumentacji o module Python. Zobaczmy przykład w akcji:

Importuj sprawdzanie
Importuj Linuxhint
Drukuj (sprawdź.GetSource (Linuxhint.Student))

Oto, co wracamy z tym poleceniem:

Uzyskanie kodu źródłowego klasy

Sprawdzanie źródła metody

W ten sam sposób wyodrębniliśmy kod źródłowy klasy, wyodrębnimy kod źródłowy metody w naszym programie Python:

Importuj sprawdzanie
Importuj Linuxhint
Drukuj (sprawdź.GetSource (Linuxhint.Student.get_name))

Oto, co wracamy z tym poleceniem:

Uzyskanie źródła metody w klasie

Podpis metody sprawdzania

Podpis metody zapewnia głęboki wgląd w to, co robi metoda i jakie dane wejściowe wymaga. Zapewnia nam moc lepszego dokumentowania metody, ponieważ dokumentacja metody jest niekompletna, nie wiedząc, jakie dane wejściowe. Oto, w jaki sposób możemy wyodrębnić informacje związane z podpisem metody:

Importuj sprawdzanie
Importuj Linuxhint
Drukuj (sprawdź.podpis (Linuxhint.module_level_function))

Oto, co wracamy z tym poleceniem:

Uzyskanie podpisu metody

Wniosek

W tej lekcji przyjrzeliśmy się, w jaki sposób możemy skorzystać z modułu Inspekcji Pythona, aby spojrzeć na kod źródłowy i wiele innych wewnętrznych cech programu Python. Przeczytaj więcej postów opartych na Pythonie tutaj.