Интроспекция (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:
- type() — функция, которая возвращает тип объекта:
x = 5 print(type(x)) # <class 'int'>
- dir() — функция, которая возвращает список атрибутов и методов объекта:
class MyClass: def my_method(self): pass my_instance = MyClass() print(dir(my_instance))
- 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:
- callable() — функция, которая проверяет, является ли объект вызываемым (например, функцией или методом):
def my_function(): pass print(callable(my_function)) # True
- eval() и exec() — функции, которые позволяют выполнять код Python, представленный в виде строки:
x = 5 y = eval('x * 2') # 10 exec('z = x * 3') print(z) # 15
- 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] .
Произношение [ править ]
Семантические свойства [ править ]
Значение [ править ]
- книжн.самонаблюдение, извлечение кем-либо знаний из наблюдения за самим собой, из анализа собственного опыта, состояния и т. п. ◆ Как отмечает Ю.Д. Апресян в работе «Образ человека по данным языка: попытка системного описания», наивные представления о внутреннем мире человека, о наиболее важных для него категориях, отражают опыт интроспекции десятков поколений и способны служить надежным проводником в этот мир. Н. А. Сегал, «Структурно-семантическая организация ключевого слова счастье»
- психол.метод изучения психических процессов, основанный на самонаблюдении ◆ Познание собственной психики самонаблюдением, или интроспекцией , всегда осуществляется в той или иной мере опосредованно через наблюдение внешней деятельности. С. Л. Рубинштейн, «Основы общей психологии», 1940 г. [НКРЯ]
- психиатр.метод изучения психопатологической картины, основанный на самонаблюдении, анализе психически больным своих ощущений и переживаний ◆ Отсутствует пример употребления (см. рекомендации ).
Синонимы [ править ]
Антонимы [ править ]
Гиперонимы [ править ]
Гипонимы [ править ]
Родственные слова [ править ]
Ближайшее родство |