Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825

Для чего нужны метаклассы

02.09.2019, 14:24. Показов 2979. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с решением теста
Для чего нужны метаклассы:
1. для создания метаобъектов
2. для создания дескрипторов
3. для управления созданием классов
нужно выбрать несколько правильных вариантов
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.09.2019, 14:24
Ответы с готовыми решениями:

Цикл While - как и для чего использовать?
Здравствуйте! Если не сложно поясните момент с циклом While. Для чего применяется на практике ? Как использовать и что он делает? Ато я...

Не пойму для чего нужна данная строчка кода key = list.count в следующем коде
numbers = def maxk_element(list): return max(set(list), key = list.count) print(maxk_el(numbers))

Для чего нужен Python?
Доброго времени суток ув. All!! Прошу сильно не пинать и тухленькими продуктами жизнедеятельности не закидывать, на форуме так и не смог...

8
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,241
02.09.2019, 14:49
Inkvizzz, хм, а в книге что написано?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
02.09.2019, 16:08
Человек настолько ленив, что даже своими словами вопрос не пересказал - скопипастил всё так, что видно, что это тест, сдать и забыть.
Нет чтоб написать: "Хай пипл! Я тут начал разбираться с метаклассами, ничё непонятно, объясните на пальцах зачем они нужны? Ну ведь зачем-то же их придумали. Крутая вещь, говорят, все уже пользуют, один я ещё не"
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
02.09.2019, 16:21
Цитата Сообщение от dondublon Посмотреть сообщение
"Хай пипл! Я тут начал разбираться с метаклассами, ничё непонятно, объясните на пальцах зачем они нужны? Ну ведь зачем-то же их придумали. Крутая вещь, говорят, все уже пользуют, один я ещё не"
блин, это ж гениально!
в линкедине видел кстати совет как получить полный и исчерпывающи ответ на свой вопрос на форумах - надо не писать вопрос, а написать заведомо неверный ответ) Обязательно найдется тот, кто с грохотом и критикой на вас обрушится и все разложит по полочкам)))
3
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
02.09.2019, 20:45
Inkvizzz, Вот что пишет Лутц.
"Метаклассы являются, пожалуй, самой сложной темой в этой книге, если не всего языка Python. Ниже приводится цитата из новостной группы comp.lang. python, принадлежащая давнему разработчику Python Тиму Петерсу (Tim PePython Тиму Петерсу (Tim Pe Тиму Петерсу (Tim PeTim Pe PePeters) (который также является автором известного девиза Python: «импортируй это»): [Метаклассы] – это гораздо более серьезная тема, кот орая не затрагивает 99% пользователей. Е сли вы задаетесь вопросом – нужны ли вам  метаклассы, то, скорее всего, – не нужн ы (те, кому они действительно нужны,   точно знают об этом и им не нужно объясн ять – зачем они нужны).
Тем не менее метаклассы могут использоваться в самых разных целях, и поэтому важно знать, когда они могут быть полезны. Например, метаклассы могут использоваться для расширения классов такими возможностями, как трассировка, сохранение в файлах, регистрация исключений и многими другими. Они могут также использоваться для конструирования отдельных частей классов во время выполнения, опираясь на файлы с настройками, позволяют единообразно применять декораторы функций ко всем методам класса, проверять на соответствие ожидаемым интерфейсам и так далее."

Теперь сами решайте какому пункту теста это соответствует.

Добавлено через 9 минут
Как упоминалось во введении к этой главе, метаклассы являются продолжением этой истории – они позволяют добавлять логику, которая автоматически вызывается при создании классов, в конце инструкции class. Эта логика не присваивает оригинальному имени класса вызываемый объект декоратора, а делегирует операцию создания самого класса специализированной логике. Другими словами, метаклассы – это всего лишь другой способ, позволяющий определить автоматически вызываемый программный код . Посредством метаклассов и других инструментов, перечисленных выше, Python предоставляет способы вставлять логику обработки различных операций – вычисление выражений, обращение к атрибутам, вызовы функций, создание экземпляров классов, а теперь и создание объектов классов. В отличие от декораторов классов, которые обычно добавляют логику, вызываемую на этапе создания экземпляров, метаклассы выполняются на этапе создания классов – они представляют собой обработчики, которые используются для управления классами, а не их экземплярами.
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,241
02.09.2019, 22:22
Viktorrus, вы сейчас обрушили хрустальный замок разума)) моего, тоже)) я, вот, Лутца всё никак не прочитаю(( Так, кусками, по мере надобности(
0
03.09.2019, 07:29

Не по теме:

Цитата Сообщение от Viktorrus Посмотреть сообщение
это гораздо более серьезная тема
с пробелами какая-то проблема?)

Цитата Сообщение от Viktorrus Посмотреть сообщение
который также является автором известного девиза Python: «импортируй это»
это ты сам перевел или в книге так?

0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
03.09.2019, 10:08
Сорри, конечно... Это копипаста или ваши мысли?
Цитата Сообщение от Viktorrus Посмотреть сообщение
они позволяют добавлять логику, .... в конце инструкции class.
Логика в конце секции class ничем не отличается от логики в начале. Конечно, принято __init__ ставить в начале, но ничего не мешает поставить его и в конец Т. е. нельзя сказать, что метаклассы как-то серьёзно этому помогут
Кроме того, раз говорится про логику метаклассов - то уже логика в самом классе - это не та логика.

Цитата Сообщение от Viktorrus Посмотреть сообщение
это всего лишь другой способ
Формально верно, но это ничего не объясняет. Ну да, а что хорошего в этом другом способе, зачем он понадобился?

Цитата Сообщение от Viktorrus Посмотреть сообщение
создание экземпляров классов, а теперь и создание объектов классов.
Объект класса и экземпляр класса - это синонимы, не?
По строению предложения выходит, что раньше (т. е. без метаклассов) мы могли создавать только экземпляры, а "теперь" ещё и объекты. Хотя объекты и без метаклассов создать - никаких проблем.

В общем, очень у вас всё путано.
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
03.09.2019, 19:04
dondublon, Я всего лишь процитировал Лутца ( вариант книги с русским переводом). Поэтому все претензии или к Лутцу или к переводчикам его книги.
Лично я метоклассы пока еще не изучал, но из приведенного отрывка я понимаю так. Если декораторы добавляют логику к функциям, методам и классам при создании экземпляров, то метоклассы добавляют логику к классу, причем такую, что она может менять содержимое класса при его создании.
Цитата Сообщение от Viktorrus Посмотреть сообщение
они представляют собой обработчики, которые используются для управления классами, а не их экземплярами.
За что купил, за то и продаю.
Так как метаклассы пока еще не изучал, то своего мнения высказать не могу, поэтому и ссылаюсь на Лутца (на русский перевод).
Критику приму, только если она будет цитатами из Лутца, так как он для меня авторитет.

Добавлено через 4 минуты
Цитата Сообщение от Welemir1 Посмотреть сообщение
это ты сам перевел или в книге так?
Лутц М. Изучаем Python (4-е издание, 2011) стр. 1161

Добавлено через 7 минут
Цитата Сообщение от Welemir1 Посмотреть сообщение
с пробелами какая-то проблема?)
Когда копирую текст из книги, иногда происходят какие то сбои в тексте, начинает повторять отрывки текста. Извините не заметил сбоя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.09.2019, 19:04
Помогаю со студенческими работами здесь

Удобен ли питон и для разработки чего предназначен?
Переписал проект на C#, конечно было жаль. Все таки Питон - очень удобный язык. Будем ждать когда к нему отнесутся с должным...

Для чего нужно импортирование в pyscripter?
Привет, Я скачала этот пайскриптер. Один параметр ввел меня в состояние ступора: в одной закладке есть кнопка "импортировать". ...

С чего начать для написания дефрагментатора?
Хочу написать дефрагментатор для FAT32 . C чего стоит начинать ? Какие темы стоит почитать (кроме устройства fat32 , конечно) ? Какие...

Для чего нужен python
Ну вот что на нём пишут? приложения или сайты? Хочу выучить его пишут что язык хороший и перспективный, а где он используется я не знаю!...

Yield, для чего применяется?
Пытаюсь разобраться для чего применяется метод yield в питоне , кто знает прошу объяснить зачем и с чем едят его (гуглил? - гуглил :-) )...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru