Автор оригинала: Pankaj Kumar.
Python проверяет модуль
Python проверять Модуль очень полезен модуль который используется для внутрисрочных объектов в программе и посмотрите на исходный код модулей, Классы и Функции которые используются на протяжении всей программы. Это мощно, потому что этот модуль действительно может использоваться для извлечения исходного кода самой функции, анализируют аргументы, которые функция принимают и связанные с ними документации по библиотеке.
Предоставление образца модуля
Чтобы пример был использован на протяжении всего этого урока, мы построим очень маленький модуль образца с некоторыми функциями, классами и Docstrings Python. Вот фрагмент кода для образец .py :
def module_funct(arg1, arg2 = 'default', *args):
"""This is a module-level function."""
local_var = arg1 * 3
return local_var
class X(object):
"""Definition for X class."""
def __init__(self, name):
self.name = name
def get_name(self):
"Returns the name of the instance."
return self.name
x_obj = X('sample_instance')
class Y(X):
"""This is the Y class,
child of X class.
"""
# This method is not part of X class.
def do_something(self):
"""Anything can be done here."""
def get_name(self):
"Overrides version from X"
return 'Y(' + self.name + ')'
Теперь, когда у нас есть образец модуля, готов к использованию, мы можем начать извлечь и анстраивать свой исходный код, DocString и детали объекта. Давайте начнем.
Модуль внутрисвидетеля
Давайте начнем с самоуправления модуля образца, который мы определили. Обратите внимание, что для этого у нас есть файл образца модуля образец .py В том же каталоге, поскольку мы выполняем наши сценарии. Вот примерный фрагмент кода о том, как мы можем проверить наш модуль:
import inspect
import sample
for name, data in inspect.getmembers(sample):
if name.startswith('__'):
continue
print('{} : {!r}'.format(name, data))
Давайте посмотрим на вывод этой программы:
Модуль внутрисвидетеля с проверкой
Комплекты внутрисвидетелей в модуле
Мы можем получить все классы, которые присутствуют в модуле и предпринимают меры, когда мы находим класс, который мы искали:
import inspect
import sample
for key, data in inspect.getmembers(sample, inspect.isclass):
print('{} : {!r}'.format(key, data))
Давайте посмотрим на вывод этой программы:
Модульные классы внутрисвидетельства с проверкой
С простой идентификацией с помощьюISClass Собственность, мы смогли получить классы модулей. Методы анастроспектива в классах
На этот раз мы идем глубже, проверяя методы, которые присутствуют в классе. Обратите внимание, что мы используем тот же метод GetMembers И только идентификатор недвижимости отличается, то есть Isfunction :
import inspect from pprint import pprint import sample pprint(inspect.getmembers(sample.X, inspect.isfunction))
Давайте посмотрим на вывод этой программы:
Методы внутривеконтирования класса
Интраспективы объектов класса
С помощью модуля проверки можно отслеживать все экземпляры класса, сделанного в программе просто с одним вызовом функций:
import inspect from pprint import pprint import sample x = sample.X(name='inspect_getmembers') pprint(inspect.getmembers(x, inspect.ismethod))
Давайте посмотрим на вывод этой программы:
Осмотрите объекты класса
Получение DocString для класса
Проверка модуля часто используется в Python Tools, которые автоматизируют процесс извлечения класса и их методы Docstrings, которые могут быть представлены конечным пользователям. Это означает, что разработчик может просто поставить DocStrings в методе, и одинаковую документ можно использовать для представления другого разработчика приложения, а также снижает усилие застройщика:
import inspect
import sample
print('X.__doc__:')
print(sample.X.__doc__)
print()
print('getdoc(X):')
print(inspect.getdoc(sample.X))
Давайте посмотрим на вывод этой программы:
Получение источника класса
В интеллектуальных средах, таких как IDE, проверять модуль, используется для представления исходного кода модулей, классов и функций:
import inspect import sample print(inspect.getsource(sample.Y))
Давайте посмотрим на вывод этой программы:
Получение исходного кода класса
Полный исходный код класса был напечатан для класса без каких-либо DocString ОтказПолучение источника метода
На этот раз мы получаем исходный код единственного метода:
import inspect import sample print(inspect.getsource(sample.Y.get_name))
Давайте посмотрим на вывод этой программы:
Получение исходного кода метода
Получение метода подпись
Для окончательного примера мы получим подпись метода, который много используется в Intellisense IDES для представления разработчикам, какие аргументы принимают метод:
import inspect import sample print(inspect.signature(sample.module_funct))
Давайте посмотрим на вывод этой программы:
Получение подписи метода
Заключение
В этом уроке мы изучали отличный модуль Python, осмотр, который много используется в инструментах кода, такие как IDES и документации.
Ссылка: API DOC Отказ