gt;>> issubclass(str, basestring) True 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

gt;>> issubclass(str, basestring) True

Поиск

False

 

>>> issubclass(str, basestring) True

 

 

"Неофициальные" средства интроспекции в основном работают в области представления объектов в среде интерпретатора.Ниже будет рассмотрено,как главная(на настоящий момент)реализацияPythonможет дать информацию об определенной пользователем функции:

 

>>> def f(x, y=0):

 

... """Function f(x, y)"""

... global s


 


... return t + x + y

 

...

# присваивается дополнительный атрибут

 

>>> f.secure = 1

 

>>> f.func_name

# имя

 

'f'

# строка документации

 

>>> f.func_doc

 

'Function f(x, y)'

# значения по умолчанию

 

>>> f.func_defaults

 

(0,)

# словарь атрибутов функции

 

>>> f.func_dict

 

{'secure': 1}

 

 

>>> co = f.func_code # кодовый объект

>>> co

 

<code object f at 0x401ec7e0, file "<stdin>", line 1>

 

Кодовые объекты имеют свои атрибуты:

 

>>> co.co_code

# байт-код

 

't\x00\x00|\x00\x00\x17|\x01\x00\x17Sd\x01\x00S'

 

>>> co.co_argcount

# число аргументов

 

# имена переменных

 

>>> co.co_varnames

 

('x', 'y')

# константы

 

>>> co.co_consts

 

(None,)

# локальные имена

 

>>> co.co_names

 

('t', 'x', 'y')

# имя блока кода (в нашем случае - имя

 

>>> co.co_name

 

функции)

 

'f'

 

и так далее.Более правильно использовать для получения всех этих сведений модуль inspect.

 

Модуль inspect

 

Основное назначение модуля inspect-давать приложению информацию о модулях,классах,функциях,трассировочных объектах,фреймах исполнения и кодовых объектах.Именно модуль inspect позволяет заглянуть"на кухню"интерпретатораPython.

 

Модуль имеет функции для проверки принадлежности объектов различным типам,с которыми он работает:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 62; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.)