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
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
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
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
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.