Piton

Python modul za provjeru

Python modul za provjeru

Pregled

Jeste li se ikad zapitali kako bi bilo cool imati moć zapravo dobiti izvorni kod nekog drugog Python modula u svom programu? To će otvoriti ideje i vrata mnogim mogućnostima poput obrade izvornog koda modula, dobivanja njegove dokumentacije, automatske izrade dokumentacije za dio koda. Dopustite mi da vam kažem, ovo je 100% moguće kod Pythona pregledati modul.

Python modul za provjeru

Piton pregledati modul omogućuje nam pregled objekata pokrenutog programa, dobivanje izvornog koda modula, dobivanje docstringa pridruženog tom modulu, čitanje potpisa metode funkcije u Pythonu i još mnogo toga. Na taj način možemo graditi projekte koji proizvode vlastite kodne dokumente za vlastite projekte. To znači da moramo samo dati potrebne komentare na naš Python kod, a ostatak posla možemo prepustiti samom Pythonu da nam proizvede dokumentaciju.

Korištenje uzorka koda

Da bih razumio kako Python pregledati modul radi, koristit ćemo jednu vlastitu definiciju uzorka koda u Pythonu koja samo pokazuje nasljeđivanje u Pythonu i kako se izrađuju objekti. Pogledajmo primjer modula koji ćemo koristiti u ostatku tutorijala ovdje:

def module_level_function (arg1, arg2 = 'zadani', * args):
"" "Ja sam funkcija na razini modula."" "
lokalni_var = arg1 * 2
vrati local_var
razred Osoba (objekt):
"" "Definicija za klasu Person."" "
def __init __ (ja, ime):
sebe.ime = ime
def get_name (self):
Msgstr "Vraća ime instance."
vratiti se.Ime
person_obj = Osoba ('sample_instance')
razred Student (osoba):
"" "Ovo je razred učenika, dijete razreda osobe.
"" "
# Ova metoda nije dio klase Person.
def do_something_else (self):
"" "Ovdje se sve može učiniti."" "
def get_name (self):
"Poništava verziju iz klase Person"
return 'Student (' + self.ime + ')'

Definirali smo uzorak modula kako bismo mogli početi izvlačiti izvorni kod i druge komponente iz njega u kasnijim primjerima koje pišemo. Započnimo.

Modul za inspekciju

Gornji Python modul sprema se u datoteku pod nazivom linuxhint.py u istom direktoriju gdje ćemo napraviti naše nove Python skripte. Možemo pregledati modul u Pythonu tako da ga prvo uvozimo. Ova izjava o uvozu bit će prisutna i u svim skriptama koje pišemo u kasnijim odjeljcima. Evo primjera programa pomoću kojeg pregledavamo naš modul:

uvoz pregledati
uvoz linuxhint
za ime, podaci u inspect.getmembers (linuxhint):
ako ime.počinje sa('__'):
nastaviti
ispis (': !r '.format (ime, podaci))

Evo što vraćamo ovom naredbom:

Python modul za provjeru


Izlaz nam daje detalje o tome koliko klasa, funkcija i objekata postoji u ovom modulu kada se skripta izvodi.

Pregled predavanja u modulu

Gornji primjer koji smo pokazali predstavio je sve detalje modula odjednom. ako želimo dobiti samo podatke koji se odnose na nastavu u modulu, možemo dobiti iste kao:

uvoz pregledati
uvoz linuxhint
za ključ, podaci u inspect.getmembers (linuxhint, pregledajte.isclass):
ispis (': !r '.format (ključ, podaci))

Pogledajmo izlaz za ovu naredbu:

Python inspekcija klase modula


Izlaz je potpuno isti, samo što su ovaj put na konzolu ispisane samo definicije klasa.

Pregled metoda u razredu

Metode su one koje definiraju ponašanje klase u OOP-ovima i pružaju informacije o tome kako će se ponašanje Objekata izmijeniti dok se metode pozivaju na njih. Iz tog je razloga važno dokumentirati sve metode koje postoje u klasi ili modulu. Možemo dobiti informacije povezane s metodom poput ove:

uvoz pregledati
from pprint import pprint
uvoz linuxhint
otisak (pregledati.getmembers (linuxhint.Osoba, pregledaj.je u funkciji))

Evo što vraćamo ovom naredbom:

Uvid u nastavnu metodu


Izlaz samo prikazuje definiciju metode svake prisutne metode.

Pregled objekata klase

Kada proučite koliko prostora zauzima kada pokrenemo Python skriptu, važno je znati koliko je objekata za klasu instancirano za klasu u programu. Da bismo to znali, također u modulu možemo dobiti informacije o Objektima klase:

uvoz pregledati
from pprint import pprint
uvoz linuxhint
osoba = linuxhint.Osoba (ime = 'inspect_getmembers')
otisak (pregledati.getmembers (osoba, pregledajte.ismethod))

Pogledajmo izlaz za ovu naredbu:

Pregled predmeta na nastavi


Ovo također ispisuje memorijsku adresu na kojoj živi ovaj objekt tijekom ovog programa.

Pregledavanje dokumentarne datoteke klase

Dokumentacija modula dio je koji zapravo obavještava korisnika ili programera o tome o čemu se radi u ovom modulu i koje značajke pruža. Pomoću modula inspekcije možemo dobiti docstring cjelovitog modula kako bismo ga bolje dokumentirali. Pogledajmo kako možemo izvući docstring za klasu:

uvoz pregledati
uvoz linuxhint
print ('Osoba.__doc__: ')
ispis (linuxhint.Osoba.__doc__)
ispis ()
print ('getdoc (Osoba):')
ispis (pregledati.getdoc (linuxhint.Osoba))

Evo što vraćamo ovom naredbom:

Dobivanje Docstringa za nastavu

Pregled izvora klase

Napokon, možemo vidjeti kako u Python programu možemo izvući i cjeloviti izvorni kôd klase. Ovo je važna značajka, kao i ovo što nam pomaže da izgradimo alate za dokumentaciju o Python modulu. Pogledajmo primjer na djelu:

uvoz pregledati
uvoz linuxhint
ispis (pregledati.dobiva izvor (linuxhint.Student))

Evo što vraćamo ovom naredbom:

Dobivanje izvornog koda klase

Provjera izvora metode

Na isti način na koji smo izdvojili izvorni kod klase, sada ćemo izvući izvorni kod metode u našem programu Python:

uvoz pregledati
uvoz linuxhint
ispis (pregledati.dobiva izvor (linuxhint.Student.get_name))

Evo što vraćamo ovom naredbom:

Dobivanje izvora metode u nastavi

Inspekcija potpisa metode

Potpis metode pruža dubok uvid u to što metoda radi i koji je ulaz potreban. Pruža nam moć boljeg dokumentiranja metode, jer je dokumentacija metode nepotpuna, a da se ne zna koji je ulaz potreban. Evo kako možemo izdvojiti informacije povezane s potpisom metode:

uvoz pregledati
uvoz linuxhint
ispis (pregledati.potpis (linuxhint.modul_razina_funkcija))

Evo što vraćamo ovom naredbom:

Dobivanje potpisa metode

Zaključak

U ovoj smo lekciji pogledali kako možemo koristiti Python inspect module za gledanje izvornog koda i mnogih drugih unutarnjih značajki Python programa. Ovdje pročitajte više postova temeljenih na Pythonu.

Kako pojačati FPS u Linuxu?
FPS je kratica Okviri u sekundi. Zadatak FPS-a je mjerenje broja sličica u reprodukcijama video zapisa ili igranim izvedbama. Jednostavnim riječima, b...
Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...
10 najboljih igara za igranje na Ubuntuu
Windows platforma bila je jedna od dominantnih platformi za igre zbog ogromnog postotka igara koje se danas razvijaju kako bi podržavale Windows. Može...