Что такое дескрипторы в образовании

Что такое дескрипторы в образовании

Читайте также:

  1. в образовательных учреждениях Ставропольского края
  2. ВОЗДУШНЫЕ СУДА И ВОЗДУШНЫЕ СУДА-ТРЕНАЖЕРЫ ОБРАЗОВАТЕЛЬНЫХ УЧРЕЖДЕНИЙ ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
  3. Вузы должны осуществлять непрерывный мониторинг и периодическую оценку своих образовательных программ.
  4. Древний Восток — прародина образования.
  5. И компетенции врача.
  6. Информация об образовательных программах должна быть актуальной и легкодоступной.
  7. Итоги освоения содержания образовательных областей
  8. Итоги освоения содержания образовательных областей
  9. Компетенции обучающегося, формируемые в результате освоения дисциплины
  10. Компетенции обучающегося, формируемые в результате освоения дисциплины «Кадровый консалтинг и аудит персонала».
  11. Компетенции обучающегося, формируемые в результате прохождения производственной практики

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

Компетенция – способность применять знания, умения, навыки и личностные качества для успешной деятельности в различных проблемных профессиональных либо жизненных ситуациях; Компетентность – уровень владения выпускником совокупностью компетенций, отражающий степень готовности к применению знаний, умений, навыков и сформированных на их основе компетенций для успешной деятельности в определенной области.

Дескрипторы – основные признаки освоения (показатели достижения результата).

Дескрипторы и компетенции на уровне бакалавриата специальности «Сестринское дело»

Дескрипторы Компетенции
Знание и понимание Расширение знаний Углубление знаний
Применение знаний и понимание Инструментальные компетенции:когнитивные способности, способность понимать и использовать идеи и соображения
Выражение суждений Системные компетенции: сочетание понимания, отношения и знания, позволяющее воспринимать, каким образом части целого соотносятся друг с другом
Коммуникативные способности Коммуникативные компетенции: -умение выражать чувства и отношения -критическое осмысление, способность к самокритике
Способности к учебе Системные компетенции: способность оценивать место каждого компонента (понимание, отношение и знание) в системе

Дескрипторы и компетенции на уровне магистратуры специальности «Сестринское дело»

Дескрипторы Компетенции
Знание и понимание Расширение знаний Углубление знаний вклад собственных исследований, заслуживающих публикации на национальном или международном уровне
Применение знаний и понимание Инструментальные компетенции: -методологические способности, способность понимать и управлять окружающей средой, организовывать время, выстраивать стратегии обучения, способность принятия решений и разрешения проблем -технологические умения, умения, связанные с использованием техники, компьютерные навыки и способности информационного управления
Выражение суждений Системные компетенции: способность планировать изменения с целью совершенствования системы
Коммуникативные способности Коммуникативные компетенции навыки, связанные с процессами социального взаимодействия и сотрудничества, умением работать в группах, принимать социальные и этические обязательства
Способности к учебе Системные компетенции способность конструировать новые системы

Использование компетентностного подхода при оценке образовательных результатов с учетом формирования у студентов способности к успешной социализации, навыков самопрезентации, самоанализа, самооценки, самостановления.

Использование компетентностного подхода при оценке образовательных результатов с учетом формирования у обучающихся способности к успешной социализации как процесса усвоения обучающимся образцов поведения, психологических установок, социальных норм и ценностей, знаний, навыков самопрезентации, самоанализа, самооценки предусматривает оценку следующих параметров компетенций выпускников по специальности «Сестринское дело»:

— наличие критического мышления, и формулирования суждений (аргументация, рефлексия, оценивание и умозаключение);

— умение грамотного написания эссе (сфокусированного на предъявлении и развитии аргументации, и рефлексивной оценке);

— наличие способности критического анализа ситуаций;

— умение составлять критическую оценку изученной литературы (введение рефлексивного дневника);

— подготовка сообщений (выступлений); подготовка и написание статей; демонстрация знания, понимания: пересказ, описание, перечисления, распознавание, и изложения; экзамен (устный и письменный); написание эссе, фокусированное на воспроизведении информации; заполнение мультивариантных опросников, выполнение тестов и контрольные опросы; выполнение действий – демонстрация навыков; подготовка отчетов по лабораторной работе; демонстрация опыта и эксперимента; участие в ролевой игре; подготовка презентационного плаката; использование программного обеспечения и видео; наблюдение и реальное воспроизведение профессиональной деятельности.

Оценка образовательных результатов и компетенций не только на уровне квалификации, но и на уровне циклов учебных дисциплин (модулей). Измерительные индикаторы в оценивающих технологиях и средствах.

Планируемые результаты обучения по ОП специальности «Сестринское дело» достигаются в результате освоения модулей (дисциплин) программы. Это означает, что структура ОП специальности должна состоять из модулей (дисциплин), содержательно направленных на достижение определенных (сформулированных) результатов обучения.

Используя оценку в зачетных единицах результатов обучения и распределяя их по модулям (дисциплинам), можно получить оценку в зачетных единицах отдельных модулей и дисциплин. При этом планирование результатов обучения по отдельным дисциплинам (модулям) должно учитывать требования ГОСО РК по каждому из учебных циклов и разделов.

Результаты обучения по отдельным модулям программы представляют собой более детализированные знания, умения и навыки, ведущие к приобретению выпускником необходимых компетенций. Эти результаты формулируются проектировщиками ОП специальности и являются основой для разработки рабочих программ отдельных дисциплин (модулей).

Формулирование результатов обучения и определение их «стоимости» в зачетных единицах должно осуществляться совместно разработчиками программы и обеспечивающими кафедрами. Специалисты в соответствующей области могут квалифицированно сформулировать необходимые результаты обучения, определить их значимость для данной ОП специальности и соответственно компетенции выпускника.

После определения «стоимости» в зачетных единицах каждого модуля (дисциплины) программы необходимо определить виды учебных занятий и распределить временной ресурс на их проведение.

На этапе проектирования состава и формирования содержания дидактических единиц ОП специальности «Сестринское дело» важен правильный выбор учебных дисциплин, меж- и мультидисциплинарных дисциплин (модулей), проектов и работ, в том числе групповых, задание направлений производственных практик, выпускных квалификационных работ студентов. На этом этапе необходимо уточнить количество зачетных единиц, соответствующие планируемым результатам обучения и дидактическим единицам образовательной программы.

При проектировании ОП специальности «Сестринское дело» для каждой дисциплины (модуля) предусмотрены соответствующие виды учебных занятий и технологии обучения, которые позволят наиболее эффективно обеспечить достижение планируемых результатов обучения.

ОП специальности «Сестринское дело» использует любые виды учебных занятий (в соответствии с ГОСО): лекции, лабораторные и практические занятия, индивидуальные и групповые проекты, практики, консультации и т.д. Однако, требуемый высокий уровень углубленной подготовки студентов к самостоятельной профессиональной деятельности, в том числе к научно-исследовательской работе, может достигаться только при участии обучающихся в наукоемких научно-исследовательских и научно-практических проектах, в результате чего выпускники будут приобретать профессиональные и общекультурные компетенции, соответствующие запланированным результатам обучения и целям образовательной программы. Практика должна иметь целью систематизацию и расширение профессиональных знаний, формирование у студентов навыков ведения научной работы, исследования и экспериментирования. За время этой практики студент должен в окончательном виде сформулировать тему выпускной квалификационной работы и обосновать целесообразность её разработки.

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

Учебный процесс должен обеспечивать достижение результатов обучения всеми студентами, а образовательная программа должна иметь механизм, обеспечивающий непрерывный контроль выполнения учебного плана и обратную связь для его совершенствования.

Последний критерий оценки качества ОП специальности «Сестринское дело» определяет необходимость функционирования системы сопровождения карьеры и непрерывного профессионального совершенствования выпускников. Данные, полученные при помощи этой системы, должны использоваться для оценки достижения целей и дальнейшего совершенствования программы.

Качество освоения ОП по дисциплинам специальности «Сестринское дело» (модулям) может адекватно оцениваться с помощью методов и контролирующих материалов, способных обеспечить достоверную информацию об уровне знаний, умений и навыков студента.

На уровне знакомства знания должны проверяться диагностирующими материалами и методами, позволяющими выявить готовность к репродуктивной деятельности в условиях полной определенности.

На уровне воспроизведения знания должны проверяться заданиями, выполнение которых будет свидетельствовать о готовности к реконструктивной деятельности в условиях риска не определенности.

На уровне умений знания должны проверяться задачами, решение которых будет свидетельствовать о готовности к преобразующей деятельности в условиях частичной не определенности, а знания на уровне творчества должны проверяться постановкой соответствующих проблем, решение которых будет свидетельствовать о готовности к продуктивной деятельности в условиях полной не определенности.

Читайте также:  Контактный адрес электронной почты что это

Аналогичным образом должны проверяться умения и навыки студентов с использованием соответствующих методик.

Критерии оценки достижения результатов обучения представляют собой описания того, что должен уметь делать студент или выпускник, что бы их продемонстрировать. Методы оценивания результатов обучения должны быть описаны таким образом, чтобы гарантировать их адекватность сформулированным целям.

В каждой дисциплине (модуле) с учетом видов учебных занятий необходимо определить элементы оценивания результатов обучения как согласованные и четко сформулированные неделимые совокупности результатов обучения с соответствующими критериями оценки. При этом каждый элемент оценивания может иметь название и «стоимость» в зачетных единицах.

Материалы, касающиеся критериев, методов и средств оценки достижения результатов обучения, должны содержаться в рабочей программе модуля (дисциплины), наряду с описанием содержания, видов учебных занятий, образовательных технологий и результатов обучения.

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

Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)

педагогические науки

  • Власов Дмитрий Анатольевич , кандидат наук, доцент, доцент
  • Российский экономический университет им. Г.В.Плеханова
  • МИКРОЭКОНОМИКА
  • ДЕСКРИПТОР
  • КОМПЕТЕНТНОСТНЫЙ ПОДХОД
  • ВЫСШЕЕ ОБРАЗОВАНИЯ
  • ЦИКЛ ОБУЧЕНИЯ
  • ЦЕЛЕПОЛАГАНИЕ

Похожие материалы

Реализация компетентностного подхода в высшем образовании [1] подразумевает перенос акцентов с знаниевой парадигмы обучения в компетентностную парадигму. При этом возникает крупная педагогическая проблема измерения степени сформированности компетенций. Другими словами, это проблема дескрипторов. Под дескриптором (descriptor) принято понимать достаточно общее утверждение о сущностных характеристиках, которыми, как ожидается, должен обладать студент бакалаврита по завершении определенного образовательного цикла [18, 19].

Мы считаем, что понятие дескрипторов целесообразно рассматривать не только для завершенных циклов обучения, но и для незавершенных циклов (уровень учебной дисциплины, учебного модуля, образовательной области). Разработка системы дескрипторов является одним из перспективных направлений модернизации математической подготовки бакалавра [20], находит отражение в стратегии развития методической системы математической подготовки бакалавров [16].

Современная педагогическая наука располагает рядом требований по разработке системы дескрипторов, призванных внести большую открытость в систему высшего образования, успешно реализовать принцип вариативности образования. Результаты проведенного анализа требования позволяют нам сформулировать следующие рекомендации для разработчиков систем дескрипторов учебных дисциплин.

Первая группа дескрипторов. Во-первых, необходимо акцентировать внимание на возможность демонстрации современных знаний и осознанного понимания содержательной области, основы которых составляет общее среднее образование. Именно такое начальное знание образует базис для выбора профессиональной области, рода деятельности, последующего индивидуального развития и дальнейшего обучения с целью завершения начального цикла развития компетенций.

Во-вторых, применение знаний и их понимание в контексте своего рода деятельности.

В-третьих, умение искать и применять информацию, необходимую для последующего решения четко определенных конкретных и более-менее абстрактных проблем и ситуаций.

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

В-пятых, навыки обучения, позволяющие школьникам и студентам строить свое дальнейшую образовательную траекторию с определенной степенью самостоятельности и ответственности.

Вторую группу дескрипторов составляют следующие компоненты.

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

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

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

В-четвертых, возможность эффективной передачи информации, идей, проблем и вариантов их решения аудитории слушателей, которая состоит не только из специалистов предметной области, но и из неспециалистов.

В-пятых, достаточно развитые навыки в области обучения и самообучения, необходимые для осуществления дальнейшего эффективного обучения с достаточно большой степенью самостоятельности, но под контролем преподавателя высшей школы.

Третья группа дескрипторов. Во-первых, демонстрация знаний и понимания причинно-следственных связей образовательной области, в основе которого сформированные компетенции бакалаврского уровня. Расширение фундаментальных и прикладных представлений, усиление уровня развития компетенций, необходимых для создания эффективных исследовательских возможностей.

Во-вторых, творческое применение передовых знаний образовательной области и выраженная способность к поиску оптимального решения задач в исключительно новых или ранее неизвестных условий в достаточно широком контексте, относящемся к методам и моделям образовательной области.

В-третьих, уверенная интегративная способность по адаптации знаний, методов, моделей к новым условиям возможного применения, формирование собственных суждений по анализируемой проблеме и ситуации в условиях неполноты информации.

В-четвёртых, возможности по четкой и ясной трансляции собственных результатов, выводов, рекомендаций для специалистов и неспециалистов.

В-пятых, устойчивые навыки обучения и самообучения, самоконтроля.

Принимая во внимание приведенные рекомендации по разработке системы дескрипторов, конкретизируем разработку на уровне учебной дисциплины «Моделирование и микроэкономика», для которой реализовано технологическое проектирование многоуровневого содержания [22].

Дескриптор 1. Применение аппарата дифференциального и интегрального исчислений, линейной алгебры и теории чисел, аналитической геометрии, теории вероятностей при решении прикладных задач исследования социально-экономических проблем и ситуаций, учитывая взаимосвязи социально-экономических явлений, процессов и институтов.

Дескриптор 2. Навыки поиска и проведения последующего анализа качественной и количественной информации, необходимой для постановки прикладных задач исследования социально-экономических проблем и ситуаций, умение анализировать материалы печатных и электронных средств массовой информации, экспериментальных данных (результаты изменений и наблюдений).

Дескриптор 3. Знание и практический опыт использования при решении прикладных задач исследования социально-экономических проблем и ситуаций основных и вариативных методов и инструментальных средств (пактов прикладных программ), осознание воздействия математического моделирования на формирование экономической политики.

Дескриптор 4. Умение разрабатывать и реализовывать логическую последовательность этапов анализа социально-экономических проблем и ситуаций, на основе изучения учебной и научной литературы. Понимание социально-экономического смысла полученного результата внутримодельного исследования.

Отметим, что достижение перечисленных дескрипторов будущих экономистов [15], менеджеров [14], политологов [7] связаны с анализом различных прикладных задач социально-экономического содержания, среди которых:

  • задача анализа карты экономических рисков [13, 23];
  • задача визуализации проблем и ситуаций финансовой сферы [10];
  • задача моделирования процесса принятия решений (метод дерева решений) [8];
  • задача о нахождении вероятности попадания случайной величины в заданный интервал [17];
  • задача оценки бизнеса (доходный подход к оценке стоимости малого предприятия) [4];
  • задача формализации конкурентного взаимодействия фирм на рынке сбыта продукции [11];
  • модели теории риска (задача выбора инвестиционной стратегии руководителя) [3];
  • модели Шарпа (задача формирования оптимального портфеля ценных бумаг) [2];
  • теоретико-игровая модель конкурентной борьбы за рынки сбыта продукции (задача определения оптимальной стратегии по различным критериям) [9];
  • теоретико-игровая модель конкурентной борьбы интернет-магазинов за рынки сбыта продукции (задача определения оптимальной стратегии) [6].

Основу представленных задач составляет современная классификация математических моделей [21]. Выделение системы дескрипторов учебной дисциплины «Моделирование и микроэкономика» позволяет выделить три цикла обучения, представленных на рис. 1, рис. 2, рис. 3, учитывающих особенности технологического целеполагания при обучении прикладной математике (математическим методам в экономике) [5, 12].

Рисунок 1. Первый цикл образовательной области «Моделирование и микроэкономика» Рисунок 2. Второй цикл образовательной области «Моделирование и микроэкономика» Рисунок 3. Третий цикл образовательной области «Моделирование и микроэкономика»

Читайте также:  Как убрать царапины с очков солнцезащитных

Список литературы

  1. Власов Д. А. Компетентностный подход к проектированию педагогических объектов // Вестник Федерального государственного образовательного учреждения высшего профессионального образования Московский государственный агроинженерный университет им. В.П. Горячкина. — 2008. — № 6-2. — С. 124-127.
  2. Власов Д. А. Модель Шарпа как инструментальная основа опмитизации активов // Инновационная наука. — 2016. — № 3-1. — С. 43-45.
  3. Власов Д. А. Модульный подход к проектированию содержания учебной дисциплины «Теория риска» // Успехи современной науки и образования. — 2016. — Т. 1. — № 9. — С. 122-124.
  4. Власов Д. А. Особенности реализации доходного подхода к оценке стоимости малого предприятия // Вопросы экономики и управления. — 2016. — № 3 (5). — С. 78-81.
  5. Власов Д. А. Особенности целеполагания при проектировании системы обучения прикладной математике // Философия образования. — 2008. — № 4. — С. 278-283.
  6. Власов Д. А. Построение и анализ теоретико-игровой модели конкурентной борьбы интернет-магазинов за рынки сбыта продукции // Вестник магистратуры. — 2016. — № 10-1 (61). — С. 66-68.
  7. Власов Д. А. Проектирование содержания математической подготовки бакалавра политологии на основе концепции фундирования // Ярославский педагогический вестник. — 2014. —Т. 2 — № 3. — С. 86-89.
  8. Власов Д. А. Реализация метода дерева в моделировании процесса принятия решений // Вопросы экономики и управления. — 2016. — №2 (4). — С. 34-37.
  9. Власов Д. А. Теоретико-игровая модель конкурентной борьбы за рынки сбыта продукции // Вопросы экономики и управления. — 2016. — № 5 (7). — С. 27-29.
  10. Власов Д. А. Технология визуализации проблем и ситуаций финансовой сферы // Педагогика высшей школы. — 2016. — №2 (5). — С. 35-38.
  11. Власов Д. А. Формализация конкурентного взаимодействия фирм на рынке сбыта продукции // Инновационная наука. — 2016. — № 10-1. — С. 18-19.
  12. Власов Д. А. Целеполагание в системе математической подготовки бакалавра // Социосфера. — 2014. — № 2. — С. 165-169.
  13. Власов Д. А. Экономические риски: содержательный и методический аспекты // Инновационная наука. — 2016. — № 8-1. — С. 40-42.
  14. Власов Д. А., Синчуков А. В. Прикладная математическая подготовка бакалавра менеджмента // Образование и воспитание. — 2016. — № 4 (9). — С. 57-60.
  15. Власов Д. А., Синчуков А. В. Принципы проектирования прикладной математической подготовки бакалавра экономики // Образование и воспитание. — 2016. — № 3 (8). — С. 37-40.
  16. Власов Д. А., Синчуков А. В. Стратегия развития методической системы математической подготовки бакалавров // Наука и школа. — 2012. — № 5. — С. 61-65.
  17. Власов Д. А., Синчуков А. В. Технологии WolframAlpha в системе подготовки бакалавра экономики (на примере задачи о вероятности попадания случайной величины в заданный интервал) // Молодой ученый. — 2015. — №11. — С. 1298-1301.
  18. Монахов В. М. Введение в теорию педагогических технологий. — Волгоград, 2006. — 318 с.
  19. Монахов В. М., Ярыгин А. Н., Коростелев А. А. Педагогические объекты. Педагогическое проектирование. Know how технологии.—Тольятти, 2004. — 36 с.
  20. Синчуков А. В. Анализ перспективных направлений модернизации математической подготовки бакалавра // Инновационная наука. — 2016. — № 10-1. — С. 118-119.
  21. Синчуков А. В. Современная классификация математических моделей // Инновационная наука. — 2016. — № 3-1. — С. 214-215.
  22. Синчуков А.В. Технологическое проектирование содержания математической подготовки бакалавра менеджмента // Молодой ученый. — 2016. — № 20 (124). — С. 730-732.
  23. Тихомиров Н. П., Тихомирова Т. М. Риск-анализ в экономике. — М.: Экономика. — 2010. – 320 с.

Электронное периодическое издание зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), свидетельство о регистрации СМИ — ЭЛ № ФС77-41429 от 23.07.2010 г.

Соучредители СМИ: Долганов А.А., Майоров Е.В.

Краткий обзор

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

Изучение того, как работают дескрипторы, откроет доступ к большему числу рабочих инструментов, поможет лучше понять как работает питон, и ощутить элегантность его дизайна.

Введение и определения

Если говорить в общем, то дескриптор — это атрибут объекта со связанным поведением (англ. binding behavior), т.е. такой, чьё поведение при доступе переопределяется методами протокола дескриптора. Эти методы: __get__ , __set__ и __delete__ . Если хотя бы один из этих методов определён для объекта, то он становится дескриптором.

Стандартное поведение при доступе к атрибутам — это получение, установка и удаление атрибута из словаря объекта. Например, a.x имеет такую цепочку поиска атрибута: a.__dict__[‘x’] , затем в type(a).__dict__[‘x’] , и далее по базовым классам type(a) не включая метаклассы. Если же искомое значение — это объект, в котором есть хотя бы один из методов, определяющих дескриптор, то питон может изменить стандартную цепочку поиска и вызвать один из методов дескриптора. Как и когда это произойдёт зависит от того, какие методы дескриптора определены для объекта. Дескрипторы вызываются только для объектов или классов нового стиля (класс является таким, если наследует от object или type ).

Дескрипторы — это мощный протокол с широкой областью применения. Они являются тем механизмом, который стоит за свойствами, методами, статическими методами, методами класса и вызовом super() . Внутри самого питона с их помощью реализуются классы нового стиля, которые были представлены в версии 2.2. Дескрипторы упрощают понимание нижележащего кода на C, а также представляют гибкий набор новых инструментов для любых программ на питоне.

Протокол дескрипторов

Собственно это всё. Определите любой из этих методов и объект будет считаться дескриптором, и сможет переопределять стандартное поведение, если его будут искать как атрибут.

Если объект определяет сразу и __get__ , и __set__ , то он считается дескриптором данных (англ. data descriptor). Дескрипторы, которые определили только __get__ называются дескрипторами не данных (англ. non-data descriptors). Их называются так, потому что они используют для методов, но другие способы их применения также возможны.

Дескрипторы данных и не данных отличаются в том, как будет изменено поведение поиска, если в словаре объекта уже есть запись с таким же именем как у дескриптора. Если попадается дескриптор данных, то он вызывается раньше, чем запись из словаря объекта. Если в такой же ситуации окажется дескриптор не данных, то запись из словаря объекта имеет преимущество перед этим дескриптором.

Чтобы создать дескриптор данных только для чтения, определите и __get__ , и __set__ , и сделайте так, чтобы __set__ выбрасывал исключение AttributeError . Определения метода __set__ и выбрасывания исключения достаточно, чтобы этот дескриптор считался дескриптором данных.

Вызов дескрипторов

Дескриптор можно вызвать напрямую через его метод. Например, d.__get__(obj) .

Однако, наиболее частый вариант вызова дескриптора — это автоматический вызов во время доступа к атрибуту. Например, obj.d ищет d в словаре obj . Если d определяет метод __get__ , то будет вызван d.__get__(obj) . Вызов будет сделан согласно правилам, описанным ниже.

Детали вызова различаются от того, чем является obj — объектом или классом. В любом случае, дескрипторы работают только для объектов и классов нового стиля. Класс является классом нового стиля, если он является потомком object .

Читайте также:  Модифицированный код двоичного числа

Для объектов алгоритм реализуется с помощью object.__getattribute__ , который преобразует запись b.x в type(b).__dict__[‘x’].__get__(b, type(b)) . Реализация работает через цепочку предшественников, в которой дескрипторы данных имеют приоритет перед переменными объекта, переменные объекта имеют приоритет перед дескрипторами не данных, и самый низкий приоритет у метода __getattr__ , если он определён. Полную реализацию на языке C можно найти в PyObject_GenericGetAttr() в файле Objects/object.c .

Для классов алгоритм реализуется с помощью type.__getattribute__ , который преобразует запись B.x в B.__dict__[‘x’].__get__(None, B) . На чистом питоне это выглядит так:

Важные части, которые следует запомнить:

  • дескрипторы вызываются с помощью метода __getattribute__
  • переопределение __getattribute__ прекратит автоматический вызов дескрипторов
  • __getattribute__ доступен только внутри классов и объектов нового стиля
  • object.__getattribute__ и type.__getattribute__ делают разные вызовы к __get__
  • дескрипторы данных всегда имеют преимущество перед переменными объекта
  • дескрипторы не данных могут потерять преимущество из-за переменных объекта

Объект, который возвращается после вызова super() также имеет собственную реализацию метода __getattribute__ , с помощью которой вызывает дескрипторы. Вызов super(B, obj).m() ищет в obj.__class__.__mro__ базовый класс A , за которым сразу следует B , и возвращает A.__dict__[‘m’].__get__(obj, A) . Если это не дескриптор, то m возвращается неизменённой. Если m нет в словаре, то возвращаемся к поиску через object.__getattribute__ .

Примечание: в питоне 2.2, super(B, obj).m() вызывал __get__ только если m был дескриптором данных. В питоне 2.3, дескрипторы не данных тоже вызываются, за исключением тех случаев, когда используются классы старого стиля. Детали реализации можно найти в super_getattro() в файле Objects/typeobject.c , а эквивалент на чистом питоне можно найти в пособии от Guido.

Детали выше описывают, что алгоритм вызова дескрипторов реализуется с помощью метода __getattribute__() для object , type и super . Классы наследуют этот алгоритм, когда они наследуют от object или если у них есть метакласс, реализующий подобную функциональность. Таким образом, классы могут отключить вызов дескрипторов, если переопределят __getattribute__() .

Пример дескриптора

Следующий код создаёт класс, чьи объекты являются дескрипторам данных и всё, что они делают — это печатают сообщение на каждый вызов get или set . Переопределение __getattribute__ — это альтернативный подход, с помощью которого мы могли бы сделать это для каждого атрибута. Но если мы хотим наблюдать только за отдельными атрибутами, то это проще сделать с помощью дескриптора.

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

Свойства

Вызова property() достаточно, чтобы создать дескриптор данных, который вызывает нужные функции во время доступа к атрибуту. Вот его сигнатура:

В документации показано типичное использование property() для создания управляемого атрибута x :

Вот эквивалент property на чистом питоне, чтобы было понятно как реализовано property() с помощью протокола дескрипторов:

Встроенная реализация property() может помочь, когда существовал интерфейс доступа к атрибуту и произошли какие-то изменения, в результате которых понадобилось вмешательство метода.

Например, класс электронной таблицы может давать доступ к значению ячейки через Cell(‘b10’).value . В результате последующих изменений в программе, понадобилось сделать так, чтобы это значение пересчитывалось при каждом доступе к ячейке, однако программист не хочет менять клиентский код, который обращается к атрибуту напрямую. Эту проблему можно решить, если обернуть атрибут value с помощью дескриптора данных, который будет создан с помощью property() :

Функции и методы

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

Словари классов хранят методы в виде функций. При определении класса, методы записываются с помощью def и lambda — стандартных инструментов для создания функций. Единственное отличие этих функций от обычных в том, что первый аргумент зарезервирован под экземпляр объекта. Этот аргумент обычно называется self , но может называться this или любым другим словом, которым можно называть переменные.

Для того, чтобы поддерживать вызов методов, функции включают в себя метод __get__ , который автоматически делает их дескрипторами не данных при поиске атрибутов. Функции возвращают связанные или не связанные методы, в зависимости от того, через что был вызван этот дескриптор.

С помощью интерпретатора мы можем увидеть как на самом деле работает дескриптор функции:

Вывод интерпретатора подсказывает нам, что связанные и несвязанные методы — это два разных типа. Даже если они могли бы быть реализованы таким образом, на самом деле, реализация PyMethod_Type в файле Objects/classobject.c содержит единственный объект с двумя различными отображениями, которые зависят только от того, есть ли в поле im_self значение или там содержится NULL (C эквивалент значения None ).

Таким образом, эффект вызова метода зависит от поля im_self . Если оно установлено (т.е. метод связан), то оригинальная функция (хранится в поле im_func ) вызывается, как мы и ожидаем, с первым аргументом, установленным в значение экземпляра объекта. Если же она не связана, то все аргументы передаются без изменения оригинальной функции. Настоящая C реализация instancemethod_call() чуть более сложная, потому что включает в себя некоторые проверки типов и тому подобное.

Статические методы и методы класса

Дескрипторы не данных предоставляют простой механизм для различных вариантов привязки функций к методам.

Повторим ещё раз. Функции имеют метод __get__ , с помощью которых они становятся методами, во время поиска атрибутов и автоматического вызова дескрипторов. Дескрипторы не данных преобразуют вызов obj.f(*args) в вызов f(obj, *args) , а вызов klass.f(*args) становится f(*args) .

В этой таблице показано связывание и два наиболее популярных варианта:

Преобразование Вызвана через объект Вызвана через класс
Дескриптор функция f(obj, *args) f(*args)
staticmethod f(*args) f(*args)
classmethod f(type(obj), *args) f(klass, *args)

Статические методы возвращают функцию без изменений. Вызовы c.f или C.f эквиваленты вызовам object.__getattribute__(c, "f") или object.__getattribute__(C, "f") . Как результат, функция одинаково доступна как из объекта, так и из класса.

Хорошими кандидатами для статических методов являются методы, которым не нужна ссылка на переменную self .

Например, пакет для статистики может включать класс для экспериментальных данных. Класс предоставляет обычные методы для расчёта среднего, ожидания, медианы и другой статистики, которая зависит от данных. Однако, там могут быть и другие функции, которые концептуально связаны, но не зависят от данных. Например, erf(x) это простая функция для преобразования, которая нужна в статистике, но не зависит от конкретного набора данных в этом классе. Она может быть вызвана и из объекта, и из класса: s.erf(1.5) —> 0.9332 или Sample.erf(1.5) —> 0.9332 .

Так как staticmethod() возвращает функцию без изменений, то этот пример не удивляет:

Если использовать протокол дескриптора не данных, то на чистом питоне staticmethod() выглядел бы так:

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

Это поведение удобно, когда нашей функции всегда нужна ссылка на класс и ей не нужны данные. Один из способов использования classmethod() — это создание альтернативных конструкторов класса. В питоне 2.3, метод класса dict.fromkeys() создаёт новый словарь из списка ключей. Эквивалент на чистом питоне будет таким:

Теперь новый словарь уникальных ключей можно создать таким образом:

Если использовать протокол дескриптора не данных, то на чистом питоне classmethod() выглядел бы так:

Ссылка на основную публикацию
Что такое автозагрузка в компьютере
Автозагрузка в Windows 10 В Windows 10 есть много интересных особенностей. Но сейчас речь пойдет о такой штуке, как автозагрузка....
Чернила светятся в ультрафиолете
Употребление симпатических (невидимых) чернил подразумевает запись неразличимую в обычных обстоятельствах, но появляющуюся после фото, химической или физической проявки. Это есть...
Чернила для принтера в шприцах
Заправочные комплекты INKO в шприцах 3х20 мл., с высококачественными чернилами на основе красителя (Dye ink) и пигментные чернила (Pigment ink)...
Что такое айти специалист
Именно в ИТ стремится перейти больше всего представителей других профессиональных областей — там хотел бы работать каждый пятый российский соискатель....
Adblock detector