Автор оригинала: 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 Отказ