Рубрики
Без рубрики

Python проверяет модуль

Python Inspect Module, Python Осмотрите пример, Python Осмотрите исходный код, Python Specute Method Signature, Python осматривают Live Objects, Python Specute классы и функции, урок проверки Python.

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