Python

Модуль проверки Python

Модуль проверки Python

Обзор

Вы когда-нибудь задумывались, насколько круто было бы иметь возможность фактически получить исходный код какого-либо другого модуля Python в вашей собственной программе? Это откроет двери для множества возможностей, таких как обработка исходного кода модуля, получение его строки документации, автоматическое создание документации для фрагмента кода. Позвольте мне сказать вам, что это на 100% возможно с Python осмотреть модуль.

Модуль проверки Python

Python осмотреть Модуль позволяет нам проверять объекты запущенной программы, получать исходный код модуля, получать строку документации, связанную с этим модулем, читать сигнатуру метода функции в Python и многое другое. Таким образом, мы можем создавать проекты, которые создают документацию по живому коду для наших собственных проектов. Это означает, что нам нужно только сделать необходимые комментарии к нашему коду Python, а остальную часть работы мы можем оставить самому Python, чтобы подготовить для нас документацию.

Использование образца кода

Чтобы понять, как Python осмотреть модуль работает, мы будем использовать одно из наших собственных определений образца кода в Python, которое просто демонстрирует наследование в Python и то, как создаются объекты. Давайте посмотрим на образец модуля, который мы будем использовать в оставшейся части учебника:

def module_level_function (arg1, arg2 = 'default', * args):
"" "Я функция уровня модуля."" "
local_var = arg1 * 2
вернуть local_var
класс Person (объект):
"" "Определение класса Person."" "
def __init __ (я, имя):
себя.name = имя
def get_name (self):
"Возвращает имя экземпляра."
вернуть себя.название
person_obj = Человек ('образец_экземпляр')
класс Студент (Человек):
"" "Это класс Student, дочерний класс Person.
"" "
# Этот метод не является частью класса Person.
def do_something_else (сам):
"" "Здесь можно сделать все, что угодно."" "
def get_name (self):
«Переопределяет версию из класса Person»
return 'Student (' + self.имя + ')'

Мы определили образец модуля, чтобы мы могли начать извлекать из него исходный код и другие компоненты в следующих примерах, которые мы напишем. Давайте начнем.

Осмотр модуля

Вышеупомянутый модуль Python сохраняется в файле с именем linuxhint.ру в том же каталоге, где мы будем создавать наши новые скрипты Python. Мы можем проверить модуль в Python, сначала выполнив для него импорт. Этот оператор импорта будет присутствовать во всех сценариях, которые мы напишем в следующих разделах. Вот пример программы, с помощью которой мы проверяем наш модуль:

импортная инспекция
импортировать linuxhint
для имени, данные в проверке.getmembers (linuxhint):
если имя.начинается с('__'):
Продолжать
Распечатать(' : !р'.формат (название, данные))

Вот что мы получаем с помощью этой команды:

Модуль проверки Python


Выходные данные предоставляют нам подробную информацию о том, сколько классов, функций и объектов существует в этом модуле при запуске скрипта.

Проверка классов в модуле

В приведенном выше примере представлены сразу все детали модуля. если мы хотим получить только информацию, относящуюся к классам в модуле, мы можем получить то же самое, что и:

импортная инспекция
импортировать linuxhint
для ключа, данные в проверке.getmembers (linuxhint, проверить.isclass):
Распечатать(' : !р'.формат (ключ, данные))

Посмотрим, что выводит эта команда:

Класс модуля проверки Python


Вывод точно такой же, только на этот раз на консоль были напечатаны только определения классов.

Проверка методов в классе

Методы - это тот, который определяет поведение класса в ООП и предоставляет информацию о том, как поведение объектов будет изменено, когда для них будут вызваны методы. По этой причине важно задокументировать все методы, существующие в классе или модуле. Мы можем получить информацию, связанную с таким методом:

импортная инспекция
из pprint импорт pprint
импортировать linuxhint
pprint (проверить.getmembers (linuxhint.Человек, осмотреть.это функция))

Вот что мы получаем с помощью этой команды:

Проверка метода класса


Выходные данные просто отображают определение каждого из имеющихся методов.

Проверка объектов класса

Когда вы задумываетесь о том, сколько места занято, когда мы запускаем скрипт Python, важно знать, сколько объектов для класса создается для класса в программе. Чтобы знать это, мы также можем получить информацию об объектах класса в модуле:

импортная инспекция
из pprint импорт pprint
импортировать linuxhint
person = linuxhint.Человек (name = 'inspect_getmembers')
pprint (проверить.getmembers (человек, инспектировать.ismethod))

Посмотрим, что выводит эта команда:

Осмотр объектов класса


Это также распечатывает адрес памяти, в котором этот объект живет в ходе этой программы.

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

Строка документации модуля - это часть, которая фактически информирует пользователя или разработчика о том, что это за модуль и какие функции он предоставляет. С модулем inspect мы можем получить строку документации полного модуля, чтобы лучше его задокументировать. Давайте посмотрим, как мы можем извлечь строку документации для класса:

импортная инспекция
импортировать linuxhint
print ('Человек.__doc__: ')
печать (linuxhint.Человек.__doc__)
Распечатать()
print ('getdoc (Человек):')
распечатать (проверить.getdoc (linuxhint.Человек))

Вот что мы получаем с помощью этой команды:

Получение строки документации для класса

Проверка источника класса

Наконец, мы можем увидеть, как мы можем извлечь полный исходный код класса в программе Python. Это важная функция, которая помогает нам создавать инструменты документации о модуле Python. Давайте посмотрим на пример в действии:

импортная инспекция
импортировать linuxhint
распечатать (проверить.getsource (linuxhint.Ученик))

Вот что мы получаем с помощью этой команды:

Получение исходного кода класса

Проверка источника метода

Таким же образом, как мы извлекали исходный код класса, теперь мы извлечем исходный код метода в нашей программе Python:

импортная инспекция
импортировать linuxhint
распечатать (проверить.getsource (linuxhint.Ученик.get_name))

Вот что мы получаем с помощью этой команды:

Получение источника метода в классе

Подпись метода проверки

Сигнатура метода дает глубокое понимание того, что делает метод и какие входные данные он принимает. Это дает нам возможность лучше документировать метод, потому что документация метода неполна, и мы не знаем, какие входные данные для этого требуются. Вот как мы можем извлечь информацию, относящуюся к сигнатуре метода:

импортная инспекция
импортировать linuxhint
распечатать (проверить.подпись (linuxhint.module_level_function))

Вот что мы получаем с помощью этой команды:

Получение подписи метода

Заключение

В этом уроке мы рассмотрели, как мы можем использовать модуль проверки Python для просмотра исходного кода и многих других внутренних функций программы Python. Прочтите больше сообщений на основе Python здесь.

Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...