Python

Python pārbaudes modulis

Python pārbaudes modulis

Pārskats

Kādreiz esat domājis, cik forši būtu jauda, ​​lai faktiski savā programmā iegūtu cita Python moduļa pirmkodu? Tas pavērs idejas un iespējas tik daudzām iespējām, piemēram, moduļa avota koda apstrādei, tā docstringa iegūšanai, dokumentācijas sagatavošanai koda daļai automātiski. Ļaujiet man pateikt jums, tas ir 100% iespējams ar Python's pārbaudīt modulis.

Python pārbaudes modulis

Python pārbaudīt modulis ļauj mums pārbaudīt darbojošās programmas objektus, iegūt moduļa pirmkodu, iegūt ar šo moduli saistīto docstringu, izlasīt Python funkcijas funkcijas parakstu un daudz ko citu. Tādā veidā mēs varam izveidot projektus, kas sagatavo reālu koda dokumentāciju mūsu pašu projektiem. Tas nozīmē, ka mums ir jāsniedz tikai nepieciešamie komentāri par mūsu Python kodu, un mēs varam atstāt pārējo darbu paša Python ziņā, lai mums sagatavotu dokumentāciju.

Izmantojot koda paraugu

Lai saprastu, kā darbojas Python pārbaudīt Modulis darbojas, mēs izmantosim vienu no mūsu pašu paraugu koda definīciju Python, kas tikai parāda mantojumu Python un kā tiek veidoti objekti. Apskatīsim parauga moduli, kuru izmantosim pārējā apmācībā šeit:

def module_level_function (arg1, arg2 = 'noklusējums', * args):
"" "Es esmu moduļa līmeņa funkcija."" "
vietējais_var = arg1 * 2
atgriezties local_var
klase Persona (objekts):
"" Personas klases definīcija."" "
def __init __ (pats, vārds):
pats.nosaukums = nosaukums
def get_name (pats):
"Atgriež instances nosaukumu."
atgriezties pats.nosaukums
person_obj = Persona (“paraugs_instance”)
klases skolēns (persona):
"" "Šī ir Studentu klase, Personas klases bērns.
"" "
# Šī metode nav daļa no Personas klases.
def do_something_else (pats):
"" "Šeit visu var izdarīt."" "
def get_name (pats):
"Personas klases versija tiek ignorēta"
atgriezt 'Student (' + self.nosaukums + ')'

Mēs esam definējuši moduļa paraugu, lai vēlākos mūsu rakstītajos piemēros varētu sākt iegūt avota kodu un citus komponentus. Sāksim.

Pārbaudes modulis

Iepriekš minētais Python modulis tiek saglabāts failā ar nosaukumu linuxhint.py tajā pašā direktorijā, kur mēs izveidosim savus jaunos Python skriptus. Mēs varam pārbaudīt moduli Python, vispirms veicot tā importēšanu. Šis importēšanas paziņojums būs pieejams visos skriptos, kurus mēs rakstām arī nākamajās sadaļās. Šeit ir programmas paraugs, ar kuru mēs pārbaudām savu moduli:

importa pārbaude
importēt linuxhint
par vārdu, datiem pārbaudē.getmembers (linuxhint):
ja vārds.startswith ('__'):
Turpināt
drukāt (': !r '.formāts (nosaukums, dati))

Lūk, ko mēs atgūsim ar šo komandu:

Python pārbaudes modulis


Izeja sniedz mums detalizētu informāciju par to, cik klases, funkcijas un objektu pastāv šajā modulī, kad tiek palaists skripts.

Nodarbību pārbaude modulī

Iepriekš redzamajā piemērā mēs parādījām visu moduļa informāciju uzreiz. ja mēs vēlamies modulī iegūt tikai informāciju, kas saistīta ar nodarbībām, mēs varam iegūt tādu pašu kā:

importa pārbaude
importēt linuxhint
par atslēgu - dati pārbaudē.getmembers (linuxhint, pārbaudiet.isclass):
drukāt (': !r '.formāts (atslēga, dati))

Apskatīsim šīs komandas izvadi:

Python pārbauda moduļa klasi


Izeja ir tieši tāda pati, tikai šoreiz konsolē tika izdrukātas tikai klases definīcijas.

Pārbaudes metodes klasē

Metodes ir tā, kas nosaka klases uzvedību OOP un sniedz informāciju par to, kā objektu uzvedība tiks modificēta, kad metodes tiek izmantotas. Šī iemesla dēļ ir svarīgi dokumentēt visas klases vai moduļa metodes. Mēs varam iegūt informāciju par šādu metodi:

importa pārbaude
no pprint importa pprints
importēt linuxhint
pprint (pārbaudīt.getmembers (linuxhint.Persona, pārbaudi.ir funkcija))

Lūk, ko mēs atgūsim ar šo komandu:

Klases metodes pārbaude


Rezultātā tikai tiek parādīta katras esošās metodes metodes definīcija.

Klases objektu pārbaude

Kad jūs interesējaties par to, cik daudz vietas aizņem, palaižot Python skriptu, ir svarīgi zināt, cik klases objektu ir klasē instalēti programmā. Lai to uzzinātu, modulī varam iegūt informāciju arī par klases objektiem:

importa pārbaude
no pprint importa pprints
importēt linuxhint
persona = linuxhint.Persona (vārds = 'inspect_getmembers')
pprint (pārbaudīt.locekļi (persona, pārbaudiet.ismetode))

Apskatīsim šīs komandas izvadi:

Klases objektu pārbaude


Tas arī izdrukā atmiņas adresi, kur šis objekts dzīvo šīs programmas laikā.

Klases docstringa pārbaude

Moduļa instrukcija ir tā daļa, kas faktiski informē lietotāju vai izstrādātāju par to, kas ir šis modulis un kādas funkcijas tas nodrošina. Izmantojot pārbaudes moduli, mēs varam iegūt pilnīga moduļa docstringu, lai to labāk dokumentētu. Apskatīsim, kā mēs varam iegūt dekstringu klasei:

importa pārbaude
importēt linuxhint
drukāt ('Persona.__doc__: ')
drukāt (linuxhint.Persona.__doc__)
izdrukāt ()
drukāt ('getdoc (Persona):')
izdrukāt (pārbaudīt.getdoc (linuxhint.Persona))

Lūk, ko mēs atgūsim ar šo komandu:

Dokstringa iegūšana stundai

Klases avota pārbaude

Visbeidzot, mēs varam redzēt, kā mēs varam iegūt pilnu klases avota kodu arī Python programmā. Šī ir svarīga funkcija, kā arī palīdz mums izveidot dokumentācijas rīkus par Python moduli. Apskatīsim piemēru darbībā:

importa pārbaude
importēt linuxhint
izdrukāt (pārbaudīt.. resurss (linuxhint.Students))

Lūk, ko mēs atgūsim ar šo komandu:

Klases avota koda iegūšana

Metodes avota pārbaude

Tādā pašā veidā, kā mēs izguvām klases avota kodu, mēs tagad iegūsim metodes avota kodu mūsu Python programmā:

importa pārbaude
importēt linuxhint
izdrukāt (pārbaudīt.izpaužas.Students.get_name))

Lūk, ko mēs atgūsim ar šo komandu:

Metodes avota iegūšana klasē

Pārbaudes metodes paraksts

Metodes paraksts sniedz dziļu ieskatu par to, ko metode dara un kādu ieguldījumu tā veic. Tas mums dod iespēju dokumentēt metodi labāk, jo metodes dokumentēšana ir nepilnīga, nezinot, kādu ieguldījumu tā prasa. Lūk, kā mēs varam iegūt informāciju, kas saistīta ar metodes parakstu:

importa pārbaude
importēt linuxhint
izdrukāt (pārbaudīt.paraksts (linuxhint.moduļa_līmeņa_funkcija))

Lūk, ko mēs atgūsim ar šo komandu:

Metodes paraksta iegūšana

Secinājums

Šajā nodarbībā mēs apskatījām, kā mēs varam izmantot Python inspect moduli, lai apskatītu avota kodu un daudzas citas Python programmas iekšējās funkcijas. Lasiet vairāk uz Python balstītas ziņas šeit.

Cīņa par Vesnota apmācību
Cīņa par Vesnotu ir viena no populārākajām atvērtā koda stratēģijas spēlēm, kuru jūs varat spēlēt šajā laikā. Šī spēle ir izstrādāta ne tikai ļoti ilg...
0 A.D. Apmācība
No daudzajām stratēģijas spēlēm 0 A.D. izdodas izcelties kā visaptverošs nosaukums un ļoti dziļa, taktiska spēle, neskatoties uz to, ka tā ir atvērtā ...
Unity3D apmācība
Ievads Vienotībā 3D Unity 3D ir spēcīgs spēļu izstrādes dzinējs. Tā ir pārrobežu platforma, kas ļauj izveidot spēles mobilajām ierīcēm, tīmeklim, gald...