Python

Pythoni kontrollimoodul

Pythoni kontrollimoodul

Ülevaade

Kas olete mõelnud, kui lahe oleks, kui teil oleks võimu mõne muu Pythoni mooduli lähtekoodi hankimiseks oma programmis? See avab ideid ja uksi nii paljudele võimalustele nagu mooduli lähtekoodi töötlemine, selle käsu hankimine, kooditüki jaoks automaatselt dokumentatsiooni tootmine. Las ma ütlen teile, Pythoni omadega on see 100% võimalik kontrollima moodul.

Pythoni kontrollimoodul

Python kontrollima moodul võimaldab meil kontrollida jooksva programmi objekte, hankida mooduli lähtekoodi, hankida selle mooduliga seotud käske, lugeda Pythoni funktsiooni meetodi allkirja ja palju muud. Nii saame ehitada projekte, mis toodavad reaalajas koodidokumentatsiooni meie enda projektide jaoks. See tähendab, et peame oma Pythoni koodi kohta tegema ainult vajalikke kommentaare ja ülejäänud dokumendid saame meile dokumentide tootmiseks jätta Pythoni enda teha.

Kasutades näidiskoodi

Et mõista, kuidas Pythoni omad on kontrollima moodul töötab, kasutame Pythonis ühte enda näidiskoodi määratlust, mis lihtsalt näitab pärandit Pythonis ja kuidas objekte tehakse. Vaatame näidismoodulit, mida kasutame ülejäänud õpetuses siin:

def mooduli_taseme_funktsioon (arg1, arg2 = 'vaikimisi', * args):
"" "Olen moodulitaseme funktsioon."" "
kohalik_var = arg1 * 2
return local_var
klass Isik (objekt):
"" "Isiku klassi määratlus."" "
def __init __ (ise, nimi):
ise.nimi = nimi
def get_name (ise):
"Tagastab eksemplari nime."
tagasi ise.nimi
person_obj = Isik ('näidis_asutus')
klassi õpilane (inimene):
"" "See on Õpilaste klass, Isiku klassi laps.
"" "
# See meetod ei kuulu Isiku klassi.
def do_something_else (ise):
"" "Siin saab kõike teha."" "
def get_name (ise):
"Alistab versiooni klassist Isik"
tagastage 'Student (' + ise.nimi + ')'

Oleme määranud näidismooduli, et saaksime sellest lähtekoodi ja muid komponente välja tõmmata hilisemates kirjutistes. Alustame.

Kontrollmoodul

Ülaltoodud Pythoni moodul salvestatakse faili nimega linuxhint.py samas kataloogis, kuhu teeme oma uued Pythoni skriptid. Saame Pythonis moodulit kontrollida, tehes kõigepealt selle impordi. See impordilause on olemas kõigis skriptides, mille kirjutame ka hilisemates jaotistes. Siin on näidisprogramm, millega me oma moodulit kontrollime:

impordikontroll
import linuxhint
nime, kontrollitavate andmete osas.getmembers (linuxhint):
kui nimi.startswith ('__'):
jätkata
print (': !r '.vorming (nimi, andmed))

Selle käsuga saame tagasi:

Pythoni kontrollimoodul


Väljund annab meile üksikasjad selle kohta, kui palju klasse, funktsioone ja objekte selles moodulis skripti käivitamisel eksisteerib.

Klasside kontrollimine moodulis

Ülaltoodud näites esitasime kõik mooduli üksikasjad korraga. kui tahame moodulis saada ainult klassidega seotud teavet, võime saada sama mis:

impordikontroll
import linuxhint
võtme, kontrollitavate andmete jaoks.getmembers (linuxhint, kontrollige.isclass):
print (': !r '.vorming (võti, andmed))

Vaatame selle käsu väljundit:

Pythoni kontrollimooduli klass


Väljund on täpselt sama, ainult et seekord trükiti konsoolile ainult klassi definitsioonid.

Meetodite kontrollimine klassis

Meetodid on see, mis määratleb klassi käitumise OOP-des ja annab teavet selle kohta, kuidas objektide käitumist nende meetodite kasutamisel muudetakse. Seetõttu on oluline dokumenteerida kõik klassis või moodulis eksisteerivad meetodid. Saame teavet sellise meetodi kohta:

impordikontroll
alates pprint impordi pprint
import linuxhint
pprint (kontrollige.getmembers (linuxhint.Isik, kontrollige.isfunktsioon))

Selle käsuga saame tagasi:

Klassimeetodi kontrollimine


Väljund näitab lihtsalt iga olemasoleva meetodi meetodi definitsiooni.

Klassi objektide kontrollimine

Kui uurite, kui palju ruumi on hõivatud, kui käivitame Pythoni skripti, on oluline teada, kui palju klassi objekte klassis programmis instantsitakse. Selle teadmiseks saame teavet ka klassi objektide kohta moodulis:

impordikontroll
alates pprint impordi pprint
import linuxhint
inimene = linuxhint.Isik (nimi = 'inspect_getmembers')
pprint (kontrollige.liikmed (isik, kontrollige.ismetood)

Vaatame selle käsu väljundit:

Klassi objektide kontrollimine


See prindib ka mäluaadressi, kus see objekt selle programmi käigus elab.

Klassi juhendamise kontrollimine

Mooduli käsklus on see osa, mis tegelikult teavitab kasutajat või arendajat, et mida see moodul endast kujutab ja milliseid funktsioone see pakub. Inspect mooduli abil saame täieliku mooduli docstringi selle paremaks dokumenteerimiseks. Vaatame, kuidas saame klassile õpetuse välja tõmmata:

impordikontroll
import linuxhint
print ('Isik.__doc__: ')
print (linuxhint.Isik.__doc__)
print ()
print ('getdoc (isik):')
print (kontrollige.getdoc (linuxhint.Isik))

Selle käsuga saame tagasi:

Tunniks Docstringi hankimine

Klassi allika kontrollimine

Lõpuks näeme, kuidas saame klassi täieliku lähtekoodi ka Pythoni programmis välja tõmmata. See on oluline funktsioon ja aitab meil luua Pythoni mooduli kohta dokumentatsioonivahendeid. Vaatame näite tegevuses:

impordikontroll
import linuxhint
print (kontrollige.saab allika (linuxhint.Õpilane))

Selle käsuga saame tagasi:

Klassi lähtekoodi hankimine

Meetodi allika kontrollimine

Samamoodi, nagu ekstraktisime klassi lähtekoodi, eraldame nüüd Pythoni programmis meetodi lähtekoodi:

impordikontroll
import linuxhint
print (kontrollige.saab allika (linuxhint.Üliõpilane.saada_nimi))

Selle käsuga saame tagasi:

Meetodi allika saamine klassis

Kontrollimeetodi allkiri

Meetodi allkiri annab sügava ülevaate selle kohta, mida meetod teeb ja millise sisendi ta vajab. See annab meile võimaluse meetodit paremini dokumenteerida, kuna meetodi dokumentatsioon on puudulik, teadmata, millist sisendit see vajab. Nii saame meetodi allkirjaga seotud teabe välja võtta:

impordikontroll
import linuxhint
print (kontrollige.allkiri (linuxhint.mooduli_taseme_funktsioon))

Selle käsuga saame tagasi:

Meetodi allkirja saamine

Järeldus

Selles tunnis vaatasime, kuidas saaksime Pythoni inspekteerimismoodulit kasutada lähtekoodi ja paljude muude Pythoni programmi sisemiste funktsioonide vaatamiseks. Loe rohkem Pythoni põhiseid postitusi siit.

Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...
Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...
Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...