Питхон

Питхон инспецт модуле

Питхон инспецт модуле

Преглед

Да ли сте се икад запитали како би било цоол имати моћ да стварно добијете изворни код неког другог Питхон модула у свом програму? Ово ће отворити идеје и врата многим могућностима попут обраде изворног кода модула, добијања његове документације, аутоматске израде документације за део кода. Да вам кажем, ово је 100% могуће код Питхона прегледати модул.

Питхон инспецт модуле

Питхон прегледати модул нам омогућава да прегледамо објекте покренутог програма, добијемо изворни код модула, добијемо доцстринг који је повезан са тим модулом, читамо потпис методе функције у Питхону и још много тога. На овај начин можемо да градимо пројекте који производе ливе кодну документацију за наше властите пројекте. То значи да морамо само дати потребне коментаре на наш Питхон код, а остатак посла можемо препустити самом Питхону да нам произведе документацију.

Коришћење узорка кода

Да бих разумео како Питхон прегледати модул функционише, користићемо један од сопствених примера дефиниције кода у Питхону који само показује наслеђивање у Питхону и како се праве објекти. Погледајмо пример модула који ћемо користити у остатку овог водича овде:

деф модуле_левел_фунцтион (арг1, арг2 = 'дефаулт', * аргс):
"" "Ја сам функција на нивоу модула."" "
лоцал_вар = арг1 * 2
врати лоцал_вар
класа Особа (објекат):
"" "Дефиниција за класу Персон."" "
деф __инит __ (ја, име):
себе.име = име
деф гет_наме (селф):
"Враћа име инстанце."
вратити се.име
персон_обј = Особа ('сампле_инстанце')
разред Студент (особа):
"" "Ово је класа Студент, дете класе Персон.
"" "
# Ова метода није део класе Персон.
деф до_сометхинг_елсе (селф):
"" "Овде се може учинити све."" "
деф гет_наме (селф):
„Замена верзије из класе Персон“
ретурн 'Студент (' + селф.име + ')'

Дефинисали смо узорак модула како бисмо могли да почнемо са издвајањем изворног кода и других компоненти из њега у каснијим примерима које пишемо. Хајде да почнемо.

Модул за инспекцију

Горњи Питхон модул је сачуван у датотеци која се зове линукхинт.пи у истом директоријуму где ћемо правити наше нове Питхон скрипте. Можемо прегледати модул у Питхону тако што ћемо прво извршити увоз за њега. Ова изјава о увозу биће присутна и у свим скриптама које пишемо у каснијим одељцима. Ево примера програма помоћу којег прегледавамо наш модул:

увоз прегледати
импорт линукхинт
за име, подаци у инспецт.гетмемберс (линукхинт):
ако име.почиње са('__'):
Настави
принт (': !р '.формат (име, подаци))

Ево шта добијамо овом командом:

Питхон инспецт модуле


Излаз нам даје детаље о томе колико класа, функција и објеката постоји у овом модулу када се скрипта покрене.

Провера наставе у модулу

Горњи пример који смо показали представио је све детаље модула одједном. ако желимо да добијемо само информације повезане са часовима у модулу, можемо добити исте као:

увозна инспекција
импорт линукхинт
за кључ, подаци у инспецт.гетмемберс (линукхинт, прегледајте.исцласс):
принт (': !р '.формат (кључ, подаци))

Погледајмо излаз за ову наредбу:

Питхон прегледа модул класе


Излаз је потпуно исти, само што су овог пута на конзолу исписане само дефиниције класа.

Испитивање метода у класи

Методе су оне које дефинишу понашање класе у ООП-овима и пружају информације о томе како ће понашање Објеката бити модификовано док се методе позивају на њих. Из тог разлога је важно документовати све методе које постоје у класи или модулу. Можемо добити информације повезане са методом попут ове:

увозна инспекција
фром ппринт импорт ппринт
импорт линукхинт
отисак (прегледати.гетмемберс (линукхинт.Особа, прегледај.исфунцтион))

Ево шта добијамо овом командом:

Инспекција методе предавања


Излаз само приказује дефиницију методе сваке присутне методе.

Преглед објеката класе

Када проучите колико простора заузима када покренемо Питхон скрипту, важно је знати колико је објеката за класу инстанцирано за класу у програму. Да бисмо то знали, информације о објектима класе можемо добити и у модулу:

увозна инспекција
фром ппринт импорт ппринт
импорт линукхинт
особа = линукхинт.Особа (име = 'инспецт_гетмемберс')
отисак (прегледати.гетмемберс (особа, прегледајте.исметход))

Погледајмо излаз за ову наредбу:

Преглед предмета на часу


Ово такође исписује меморијску адресу на којој живи овај објекат током овог програма.

Увид у документарну датотеку класе

Документација модула је део који заправо обавештава корисника или програмера о томе о чему је реч у овом модулу и које функције он пружа. Помоћу модула инспекције можемо добити документацију комплетног модула како бисмо га боље документовали. Погледајмо како можемо извући доцстринг за класу:

увоз прегледати
импорт линукхинт
принт ('Особа.__доц__: ')
принт (линукхинт.Особа.__доц__)
испис ()
принт ('гетдоц (Особа):')
штампати (прегледати.гетдоц (линукхинт.Особа))

Ево шта добијамо овом командом:

Добијање документације за час

Преглед извора класе

Коначно, можемо видети како можемо извући комплетни изворни код класе и у програму Питхон. Ово је важна карактеристика, као и ово што нам помаже да изградимо алате за документацију о Питхон модулу. Погледајмо пример на делу:

увозна инспекција
импорт линукхинт
штампати (прегледати.гетоурце (линукхинт.Ученик))

Ево шта добијамо овом командом:

Добијање изворног кода класе

Провера извора методе

На исти начин на који смо издвојили изворни код класе, сада ћемо издвојити изворни код методе у нашем програму Питхон:

увозна инспекција
импорт линукхинт
штампати (прегледати.гетоурце (линукхинт.Ученик.гет_наме))

Ево шта добијамо овом командом:

Добијање извора методе у класи

Потпис методе прегледа

Потпис методе пружа дубок увид у то шта метода ради и који је улаз потребан. Пружа нам моћ да боље документујемо методу, јер је документација методе непотпуна, а да се не зна који је улаз потребан. Ево како можемо издвојити информације повезане са потписом методе:

увозна инспекција
импорт линукхинт
штампати (прегледати.потпис (линукхинт.модуле_левел_фунцтион))

Ево шта добијамо овом командом:

Добивање потписа методе

Закључак

У овој лекцији смо погледали како можемо да користимо Питхон инспецт модул за гледање изворног кода и многих других унутрашњих карактеристика Питхон програма. Прочитајте више постова заснованих на Питхону овде.

Најбоље игре за ручно праћење
Оцулус Куест је недавно представио сјајну идеју ручног праћења без контролера. Са све већим бројем игара и активности које извршавају подршку формално...
Како приказати ОСД прекривач у целом екрану Линук апликација и игара
Играње игара преко целог екрана или коришћење апликација у режиму целог екрана без ометања може вам одсећи релевантне системске информације видљиве на...
Топ 5 карата за хватање игара
Сви смо видели и волели стримовање играња на ИоуТубе-у. ПевДиеПие, Јакесептицие и Маркиплиер само су неки од најбољих играча који су зарадили милионе ...