Apžvalga
Kada nors susimąstėte, kaip puiku būtų turėti galią iš tikrųjų gauti kito „Python“ modulio šaltinio kodą savo programoje? Tai atvers idėjas ir duris daugybei galimybių, pavyzdžiui, apdoroti modulio šaltinio kodą, gauti jo instrukciją, automatiškai sukurti kodo dalies dokumentaciją. Leiskite man pasakyti, kad tai 100% įmanoma naudojant „Python“ apžiūrėti modulis.
„Python“ tikrinimo modulis
„Python“ apžiūrėti modulis leidžia mums patikrinti vykdomos programos objektus, gauti modulio šaltinio kodą, gauti su tuo moduliu susietą docstring, perskaityti Python funkcijos funkcijos parašą ir daug daugiau. Tokiu būdu mes galime sukurti projektus, kurie sukuria tiesioginius kodų dokumentus mūsų pačių projektams. Tai reiškia, kad mes turime pateikti tik reikiamus komentarus apie savo „Python“ kodą ir likusią darbo dalį galime palikti pačiam „Python“, kad jis mums parengtų dokumentus.
Naudojant kodo pavyzdį
Norėdami suprasti, kaip „Python“ apžiūrėti modulis veikia, mes naudosime vieną iš savo pavyzdinių kodų apibrėžimų „Python“, kurie tik parodo paveldėjimą „Python“ ir kaip gaminami objektai. Pažvelkime į pavyzdinį modulį, kurį naudosime likusioje mokymo dalyje, čia:
def module_level_function (arg1, arg2 = 'numatytasis', * args):"" "Aš esu modulio lygio funkcija."" "
vietinis_var = arg1 * 2
grįžti local_var
klasė Asmuo (objektas):
"" "Asmens klasės apibrėžimas."" "
def __init __ (savęs, vardo):
savarankiškai.vardas = vardas
def get_name (savarankiškai):
"Grąžina egzemplioriaus pavadinimą."
grąžinti save.vardas
person_obj = Asmuo („pavyzdys_priežiūra“)
klasės mokinys (asmuo):
"" "Tai Studentų klasė, Asmens klasės vaikas.
"" "
# Šis metodas nėra Asmens klasės dalis.
def do_something_else (savęs):
"" "Čia galima padaryti viską."" "
def get_name (savarankiškai):
„Nepaiso versijos iš Asmens klasės“
grįžti 'Studentas (' + sav.vardas + ')'
Apibrėžėme pavyzdinį modulį, kad galėtume pradėti iš jo išskleisti šaltinio kodą ir kitus jo komponentus vėlesniuose rašomuose pavyzdžiuose. Pradėkime.
Tikrinamasis modulis
Aukščiau pateiktas „Python“ modulis išsaugomas faile, vadinamame linuxhint.py tame pačiame kataloge, kuriame sukursime naujus „Python“ scenarijus. Mes galime patikrinti „Python“ modulį, pirmiausia atlikdami jo importą. Šis importo pareiškimas bus pateiktas visuose scenarijuose, kuriuos rašome ir vėlesniuose skyriuose. Štai pavyzdinė programa, su kuria tikriname savo modulį:
importo tikrinimasimportuoti linuxhint
dėl vardo, duomenų tikrinant.getmembers (linuxhint):
jei vardas.prasideda su('__'):
Tęsti
spausdinti (': !r '.formatas (vardas, duomenys))
Štai ką mes grąžiname naudodami šią komandą:
„Python“ tikrinimo modulis
Išvestyje pateikiama išsami informacija apie tai, kiek klasių, funkcijų ir objektų yra šiame modulyje, kai paleidžiamas scenarijus.
Klasių tikrinimas modulyje
Aukščiau pateiktame pavyzdyje pateikėme visas modulio detales vienu metu. jei modulyje norime gauti tik su klasėmis susijusią informaciją, galime gauti tą patį kaip:
importo tikrinimasimportuoti linuxhint
raktas, duomenys tikrinami.gauti narius (linuxhint, apžiūrėti.isclass):
spausdinti (': !r '.formatas (raktas, duomenys))
Pažiūrėkime šios komandos išvestį:
„Python“ tikrinimo modulio klasė
Išvestis yra visiškai ta pati, tik šį kartą į konsolę buvo atspausdinti tik klasės apibrėžimai.
Tikrinimo metodai klasėje
Metodai yra tas, kuris apibrėžia klasės elgesį OOP ir pateikia informaciją apie tai, kaip bus modifikuojamas objektų elgesys, kai jiems bus reikalingi metodai. Dėl šios priežasties svarbu dokumentuoti visus klasėje ar modulyje egzistuojančius metodus. Mes galime gauti informacijos, susijusios su tokiu metodu:
importo tikrinimasiš pprinto importo
importuoti linuxhint
pprint (tikrinti.getmembers (linuxhint.Asmuo, apžiūrėk.funkcija))
Štai ką mes grąžiname naudodami šią komandą:
Klasės metodo tikrinimas
Išvestyje tik parodomas kiekvieno esamo metodo metodo apibrėžimas.
Klasės objektų apžiūra
Kai domitės, kiek vietos užimta, kai vykdome „Python“ scenarijų, svarbu žinoti, kiek klasės objektų yra užregistruoti klasėje programoje. Norėdami tai sužinoti, modulyje taip pat galime gauti informacijos apie klasės objektus:
importo tikrinimasiš pprinto importo
importuoti linuxhint
asmuo = linuxhint.Asmuo (vardas = 'inspect_getmembers')
pprint (tikrinti.gauti narius (asmuo, apžiūrėti.metodas))
Pažiūrėkime šios komandos išvestį:
Klasės objektų tikrinimas
Taip pat atsispausdinamas atminties adresas, kuriame gyvena šis objektas vykdant šią programą.
Klasės „Docstring“ tikrinimas
Modulio instrukcija yra ta dalis, kuri iš tikrųjų informuoja vartotoją ar kūrėją, kas yra šis modulis ir kokias funkcijas jis teikia. Su patikrinimo moduliu galime gauti viso modulio dokstringą, kad galėtume jį geriau dokumentuoti. Pažiūrėkime, kaip galime išskleisti kurso instrukcijas:
importo tikrinimasimportuoti linuxhint
spausdinti ('Asmuo.__doc__: ')
spausdinti (linuxhint.Asmuo.__doc__)
spausdinti ()
spausdinti ('getdoc (Asmuo):')
spausdinti (apžiūrėti.getdoc (linuxhint.Asmuo))
Štai ką mes grąžiname naudodami šią komandą:
Dokstringo gavimas pamokai
Klasės šaltinio tikrinimas
Galiausiai galime pamatyti, kaip galime išgauti visą klasės šaltinio kodą ir „Python“ programoje. Tai yra svarbi funkcija ir tai padeda mums sukurti „Python“ modulio dokumentavimo įrankius. Pažiūrėkime, koks yra pavyzdys:
importo tikrinimasimportuoti linuxhint
spausdinti (apžiūrėti.šaltinis (linuxhint.Studentas))
Štai ką mes grąžiname naudodami šią komandą:
Klasės šaltinio kodo gavimas
Metodo šaltinio tikrinimas
Lygiai taip pat, kaip išskyrėme klasės šaltinio kodą, dabar išgausime metodo šaltinio kodą savo „Python“ programoje:
importo tikrinimasimportuoti linuxhint
spausdinti (apžiūrėti.šaltinis (linuxhint.Studentas.gauti_pavadinimas))
Štai ką mes grąžiname naudodami šią komandą:
Metodo šaltinio gavimas klasėje
Tikrinimo metodo parašas
Metodo parašas suteikia gilią įžvalgą apie tai, ką daro metodas ir kokio indėlio reikia. Tai suteikia mums galimybę dokumentuoti metodą geriau, nes metodo dokumentacija yra neišsami, nežinant, kokio indėlio reikia. Štai kaip galime išgauti informaciją, susijusią su metodo parašu:
importo tikrinimasimportuoti linuxhint
spausdinti (apžiūrėti.parašas (linuxhint.modulio_lygio_funkcija))
Štai ką mes grąžiname naudodami šią komandą:
Metodo parašo gavimas
Išvada
Šioje pamokoje mes apžvelgėme, kaip galime naudoti „Python inspect“ modulį, kad galėtume peržiūrėti šaltinio kodą ir daugelį kitų „Python“ programos vidinių funkcijų. Skaitykite daugiau „Python“ pagrįstų įrašų čia.