Krajta

Modul pro kontrolu Pythonu

Modul pro kontrolu Pythonu

Přehled

Přemýšleli jste někdy, jak cool by bylo mít moc skutečně získat zdrojový kód nějakého jiného modulu Pythonu ve vašem vlastním programu? Tím se otevřou nápady a dveře tolika příležitostem, jako je zpracování zdrojového kódu modulu, získání jeho dokumentu, automatické vytváření dokumentace pro část kódu. Řeknu vám, u Pythonu je to 100% možné kontrolovat modul.

Modul pro kontrolu Pythonu

Krajta kontrolovat modul nám umožňuje kontrolovat objekty spuštěného programu, získat zdrojový kód modulu, získat dokumentaci spojenou s tímto modulem, přečíst podpis metody funkce v Pythonu a mnoho dalšího. Tímto způsobem můžeme vytvářet projekty, které produkují dokumentaci živého kódu pro naše vlastní projekty. To znamená, že k našemu kódu v Pythonu musíme pouze učinit nezbytné komentáře a zbytek práce můžeme nechat na samotném Pythonu, aby pro nás vytvořil dokumentaci.

Pomocí ukázkového kódu

Abychom pochopili, jak funguje Python kontrolovat modul funguje, použijeme jednu z našich vlastních definic ukázkových kódů v Pythonu, která pouze demonstruje dědičnost v Pythonu a způsob, jakým jsou objekty vytvářeny. Podívejme se na ukázkový modul, který budeme používat ve zbytku tutoriálu zde:

def module_level_function (arg1, arg2 = 'default', * args):
„“ „Jsem funkce na úrovni modulu.„“ „
local_var = arg1 * 2
návrat local_var
Osoba třídy (objekt):
"" "Definice pro třídu osob.„“ „
def __init __ (já, jméno):
já.jméno = jméno
def get_name (self):
"Vrátí název instance."
vrátit se.název
person_obj = Osoba ('sample_instance')
třída Student (Osoba):
"" "Toto je třída Student, dítě třídy Person.
„“ „
# Tato metoda není součástí třídy Person.
def do_something_else (self):
"" "Tady se dá dělat cokoli.".„“ „
def get_name (self):
„Přepíše verzi z třídy Person“
návrat 'Student (' + self.jméno + ')'

Definovali jsme ukázkový modul, abychom z něj mohli začít extrahovat zdrojový kód a další komponenty v dalších příkladech, které píšeme. Začněme.

Inspekční modul

Výše uvedený modul Python je uložen v souboru s názvem linuxhint.py ve stejném adresáři, kde budeme vytvářet naše nové skripty Pythonu. Můžeme zkontrolovat modul v Pythonu tak, že nejprve provedeme jeho import. Toto prohlášení o importu bude přítomno ve všech skriptech, které napíšeme, také v dalších částech. Zde je ukázkový program, pomocí kterého kontrolujeme náš modul:

kontrola importu
importovat linuxhint
pro jméno, data v inspekci.getmembers (linuxhint):
pokud jméno.začíná s('__'):
pokračovat
tisk(' : !r '.formát (jméno, data))

S tímto příkazem se vrátíme:

Modul pro kontrolu Pythonu


Výstup nám poskytuje podrobnosti o tom, kolik tříd, funkcí a objektů existuje v tomto modulu při spuštění skriptu.

Inspekce tříd v modulu

Výše uvedený příklad, který jsme ukázali, představil všechny podrobnosti modulu najednou. pokud chceme získat pouze informace týkající se tříd v modulu, můžeme získat stejné jako:

kontrola importu
importovat linuxhint
pro klíč, data v inspekci.getmembers (linuxhint, zkontrolujte.isclass):
tisk(' : !r '.formát (klíč, data))

Podívejme se na výstup tohoto příkazu:

Python zkontrolovat třídu modulu


Výstup je přesně stejný, pouze tentokrát byly na konzolu vytištěny pouze definice tříd.

Kontrola metod ve třídě

Metody jsou ty, které definují chování třídy v OOP a poskytují informace o tom, jak bude chování objektů změněno, když jsou na ně vyvolány metody. Z tohoto důvodu je důležité zdokumentovat všechny metody, které existují ve třídě nebo modulu. Můžeme získat informace související s metodou, jako je tato:

kontrola importu
z pprint import pprint
importovat linuxhint
pprint (zkontrolovat.getmembers (linuxhint.Osoba, zkontrolujte.funkce))

S tímto příkazem se vrátíme:

Kontrola metody třídy


Výstup zobrazuje pouze definici metody pro každou přítomnou metodu.

Inspekce objektů třídy

Když se podíváte na to, kolik místa je obsazeno, když spustíme skript v Pythonu, je důležité vědět, kolik objektů pro třídu je vytvořeno pro danou třídu v programu. Abychom to věděli, můžeme také získat informace o objektech třídy v modulu:

kontrola importu
z pprint import pprint
importovat linuxhint
osoba = linuxhint.Osoba (name = 'inspect_getmembers')
pprint (zkontrolovat.getmembers (osoba, zkontrolovat.ismethod))

Podívejme se na výstup tohoto příkazu:

Inspekční předměty třídy


To také vytiskne adresu paměti, kde tento objekt žije v průběhu tohoto programu.

Inspekce Docstring třídy

Dokumentační řetězec modulu je část, která ve skutečnosti informuje uživatele nebo vývojáře o tom, o čem je tento modul a jaké funkce poskytuje. S modulem inspect můžeme získat dokumentaci kompletního modulu, abychom jej mohli lépe dokumentovat. Podívejme se, jak můžeme extrahovat docstring pro třídu:

kontrola importu
importovat linuxhint
tisk („Osoba.__doc__: ')
tisk (linuxhint.Osoba.__doc__)
tisk()
print ('getdoc (Osoba):')
tisknout (zkontrolovat.getdoc (linuxhint.Osoba))

S tímto příkazem se vrátíme:

Získání Docstringu pro třídu

Inspekce Zdroj třídy

Nakonec vidíme, jak můžeme extrahovat také kompletní zdrojový kód třídy v programu Python. Toto je důležitá funkce a také nám pomáhá vytvářet dokumentační nástroje o modulu Pythonu. Podívejme se na příklad v akci:

kontrola importu
importovat linuxhint
tisknout (zkontrolovat.getsource (linuxhint.Student))

S tímto příkazem se vrátíme:

Získání zdrojového kódu třídy

Inspekce zdroje metody

Stejným způsobem jsme extrahovali zdrojový kód třídy, nyní extrahujeme zdrojový kód metody v našem programu Python:

kontrola importu
importovat linuxhint
tisknout (zkontrolovat.getsource (linuxhint.Student.get_name))

S tímto příkazem se vrátíme:

Získání zdroje metody ve třídě

Kontrola podpisu metody

Podpis metody poskytuje hluboký vhled o tom, co metoda dělá a jaký vstup vyžaduje. Poskytuje nám to sílu dokumentovat metodu lépe, protože dokumentace metody je neúplná, aniž bychom věděli, jaký vstup to vyžaduje. Zde je způsob, jak můžeme extrahovat informace související s podpisem metody:

kontrola importu
importovat linuxhint
tisknout (zkontrolovat.podpis (linuxhint.module_level_function))

S tímto příkazem se vrátíme:

Získání podpisu metody

Závěr

V této lekci jsme se podívali na to, jak můžeme využít modul kontroly Pythonu ke sledování zdrojového kódu a mnoha dalších interních funkcí programu Python. Přečtěte si více příspěvků založených na Pythonu zde.

Jak používat Xdotool ke stimulaci kliknutí myší a klávesových zkratek v systému Linux
Xdotool je bezplatný a otevřený nástroj příkazového řádku pro simulaci kliknutí myší a stisknutí kláves. Tento článek se bude věnovat krátkému průvodc...
Top 5 ergonomických produktů pro počítačové myši pro Linux
Způsobuje dlouhodobé používání počítače bolest zápěstí nebo prstů? Trpíte ztuhlými klouby a neustále si musíte třást ruce? Cítíte pálivou bolest pokaž...
Jak změnit nastavení myši a touchpadu pomocí Xinput v Linuxu
Většina linuxových distribucí je ve výchozím nastavení dodávána s knihovnou „libinput“ pro zpracování vstupních událostí v systému. Může zpracovávat v...