Что такое introspection
Перейти к содержимому

Что такое introspection

  • автор:

Интроспекция (introspection)

И. (букв. смотрение внутрь) — популярная методология психологов конца XIX и первых десятилетий XX вв. — представляет собой исследовательский психол. метод, при к-ром испытуемые пытаются изучать содержание и процессы своего сознания. И. использовалась для изучения широкого спектра психол. процессов, включ. память, научение, мышление, решение задач, анализ сновидений и восприятие.

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

И. была осн. методом структуралистских школ, возглавляемых Вильгельмом Вундтом в Германии и Титченером в Америке, к-рые определяли психологию как изучение сознательного опыта. Структуралисты пытались разложить опыт на его составляющие части или элементарные ощущения. Считалось, что ощущение лежит в основе перцептивных процессов, рассматриваемых как вторичная организующая активность. Целью структуралистской психологии являлось субъективное понимание сознания и содержаний разума.

Этой т. зр. противостояли представители школы гештальта, к-рые отвергали предположение о существовании первичных элементов переживания в пользу врожденных тенденций к организации и холистического взгляда на восприятие. Школа функционализма, к-рую представлял Джон Дьюи, тж противостояла субъективному интроспективному подходу, отдавая приоритет систематической, объективной демонстрации и эксперим. проверке теории. Бихевиористы, такие как Дж. Б. Уотсон, критиковали И. за ее качественный и ненадежный характер и отрицали полезность любых представлений, относящихся к субъективному опыту и вопросам сознания, придавая значение лишь наблюдаемому поведению, анализируемому в терминах измеряемых стимулов и реакций.

См. также Гештальт-психология

  • Интроверсия / экстраверсия (introversion / extraversion)
  • Интуиция (intuition)

Интроспекция в Python

Python поддерживает полную интроспекцию (отражение) времени исполнения, в том числе интроспекцию типа (type introspection (англ.) ). Это означает, что для любого объекта можно получить всю информацию о его внутренней структуре и среде исполнения. Возможности интроспекции можно условно разделить на две группы: стандартные (описанные в документации по языку (англ.) ) и нестандартные (характерные для конкретной реализации языка, например, CPython).

Примеры

Необходимые для интроспекции данные хранятся в специальных атрибутах. Так, например, получить все пользовательские атрибуты большинства объектов можно из специального атрибута — словаря (или объекта, предоставляющего dict интерфейс) __dict__

>>> class x(object):pass . >>> f = x() >>> f.attr = 12 >>> print f.__dict__ 'attr': 12> >>> print x.__dict__ # т.к. классы тоже являются экземплярами объекта type # то и они поддерживают этот тип интроспекции '__dict__': attribute '__dict__' of 'x' objects>, '__module__'.

Есть также другие атрибуты, имена и назначение которых зависят от объекта:

>>> def f():pass . >>> f.func_code.co_code # получение байтокода функции 'd\x00\x00S' >>> f.__class__ # специальный атрибут - ссылка на класс данного объекта type 'function'> 

Подавляющее большинство атрибутов, поддерживающих интроспекцию, являются классовыми, и их, в свою очередь, можно получить из obj.__class__.__dict__ . Часть информации, унаследованную от базового класса, все объекты используют совместно, что позволяет экономить память.

Модуль inspect

Для удобства получения интроспективной информации в Python есть модуль inspect [1] .

>>> def f(x,y = 10,**mp):pass . >>> inspect.getargspec(f) (['x', 'y'], None, 'mp', (10,)) 

Модуль new

С помощью модуля new возможен обратный процесс — построения объекта из составных частей на этапе исполнения

>>> def f(i): return j + i . >>> j = 2 >>> f(1) 3 >>> import new >>> g = new.function(f.func_code, 'j': 23>) >>> g(1) 24 

Примечания

Литература

  • Патрик О’БрайенРуководство по интроспекции на Python / Intersoft Lab.
  • David M. Beazley Python Essential Reference. — 4th Edition. — Addison-Wesley Professional, 2009. — 717 с. — ISBN 978-0672329784
  • Дополнить статью (статья слишком короткая либо содержит лишь словарное определение).
  • Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
  • Проставив сноски, внести более точные указания на источники.
  • Викифицировать статью.
  • Концепции языков программирования
  • Python

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое «Интроспекция в Python» в других словарях:

  • Интроспекция в Питоне — Python поддерживает полную интроспекцию (отражение) времени исполнения, в том числе интроспекцию типа (type introspection(англ.)). Это означает, что для любого объекта можно получить всю информацию о его внутренней структуре и среде исполнения.… … Википедия
  • Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му … Википедия
  • Интроспекция (программирование) — У этого термина существуют и другие значения, см. Интроспекция. Интроспекция (англ. type introspection) в программировании возможность в некоторых объектно ориентированных языках определить тип и структуру объекта во время выполнения… … Википедия
  • Стандартная библиотека Python — Богатая стандартная библиотека является одной из привлекательных сторон языка программирования Python. Здесь имеются средства для работы со многими сетевыми протоколами и форматами интернета, например, модули для написания HTTP серверов и… … Википедия
  • Пайтон — Python Класс языка: функциональный, объектно ориентированный, императивный, аспектно ориентированный Тип исполнения: интерпретация байт кода, компиляция в MSIL, компиляция в байт код Java Появился в: 1990 г … Википедия
  • Интерпретируемый язык программирования — язык программирования, в котором исходный код программы не преобразовывается в машинный код для непосредственного выполнения центральным процессором (как в компилируемых языках), а исполняется с помощью специальной программы интерпретатора. В… … Википедия
  • GTK+ — Тип библиотека элементов интерфейса (виджетов) Автор The GTK+ … Википедия
  • Отражение (программирование) — У этого термина существуют и другие значения, см. Отражение. Для улучшения этой статьи желательно?: Перевести текст с иностранного языка на русский. Н … Википедия
  • Динамическая типизация — Типизация данных Типобезопасность Вывод типов Динамическая типизация Статическая типизация Строгая типизация Мягкая типизация Зависимые типы Утиная типизация Основная статья: Строгая типизация Динамическая типизация приём, широко… … Википедия
  • Objective-C — Класс языка: объектно ориентированный, мультипарадигмальный: рефлексивно ориентированный Появился в: 1986 Автор(ы): Бред Кокс Типизация данных: нестрогая, статическая / динамическая … Википедия
  • Обратная связь: Техподдержка, Реклама на сайте
  • �� Путешествия

Экспорт словарей на сайты, сделанные на PHP,
WordPress, MODx.

  • Пометить текст и поделитьсяИскать в этом же словареИскать синонимы
  • Искать во всех словарях
  • Искать в переводах
  • Искать в ИнтернетеИскать в этой же категории

Как работать с интроспекцией и рефлексией в Python

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

Интроспекция

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

Примеры интроспекции

Давайте рассмотрим несколько примеров использования интроспекции в Python:

  1. type() — функция, которая возвращает тип объекта:
x = 5 print(type(x)) # <class 'int'>
  1. dir() — функция, которая возвращает список атрибутов и методов объекта:
class MyClass: def my_method(self): pass my_instance = MyClass() print(dir(my_instance))
  1. hasattr() , getattr() и setattr() — функции, которые позволяют проверить наличие, получить и установить атрибуты объекта соответственно:
class MyClass: def __init__(self, x): self.x = x my_instance = MyClass(5) print(hasattr(my_instance, 'x')) # True print(getattr(my_instance, 'x')) # 5 setattr(my_instance, 'x', 10) print(my_instance.x) # 10

Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Рефлексия

Рефлексия — это процесс, который позволяет программе изменять свою структуру и поведение во время выполнения. В Python вы можете использовать рефлексию, чтобы создавать и изменять объекты, вызывать методы и модифицировать классы.

Примеры рефлексии

Давайте рассмотрим несколько примеров использования рефлексии в Python:

  1. callable() — функция, которая проверяет, является ли объект вызываемым (например, функцией или методом):
def my_function(): pass print(callable(my_function)) # True
  1. eval() и exec() — функции, которые позволяют выполнять код Python, представленный в виде строки:
x = 5 y = eval('x * 2') # 10 exec('z = x * 3') print(z) # 15
  1. getattr() и setattr() также могут использоваться для вызова методов объекта:
class MyClass: def my_method(self, x): return x * 2 my_instance = MyClass() method = getattr(my_instance, 'my_method') result = method(5) print(result) # 10

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

Русский [ править ]

Корень: -интро-; корень: -спекц-; суффикс: -иj; окончание: [Тихонов, 1996] .

Произношение [ править ]

Семантические свойства [ править ]

Значение [ править ]
  1. книжн.самонаблюдение, извлечение кем-либо знаний из наблюдения за самим собой, из анализа собственного опыта, состояния и т. п. ◆ Как отмечает Ю.Д. Апресян в работе «Образ человека по данным языка: попытка системного описания», наивные представления о внутреннем мире человека, о наиболее важных для него категориях, отражают опыт интроспекции десятков поколений и способны служить надежным проводником в этот мир. Н. А. Сегал, «Структурно-семантическая организация ключевого слова счастье»
  2. психол.метод изучения психических процессов, основанный на самонаблюдении ◆ Познание собственной психики самонаблюдением, или интроспекцией , всегда осуществляется в той или иной мере опосредованно через наблюдение внешней деятельности. С. Л. Рубинштейн, «Основы общей психологии», 1940 г. [НКРЯ]
  3. психиатр.метод изучения психопатологической картины, основанный на самонаблюдении, анализе психически больным своих ощущений и переживаний ◆ Отсутствует пример употребления (см. рекомендации ).
Синонимы [ править ]
Антонимы [ править ]
Гиперонимы [ править ]
Гипонимы [ править ]

Родственные слова [ править ]

Ближайшее родство

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *