метаклассы

  • ХабрахабрФото Введение в метаклассы

    Введение в метаклассы

    В стандартной библиотеке языка программирования C++ существует много классов, наделенных если не абсолютно одинаковыми свойствами, то очень похожими. Так, стандарт вводит отдельное требование BitmaskType, описывающее свойства, какими должны обладать битовые маски в стандартной библиотеке: для них должен быть определены операции «и», «или», «не», а значение 0 должно представлять пустую маску. В стандартной библиотеке классов, от которых требуется соблюдение этого требования,…

    Читать далее »
  • ХабрахабрФото [Перевод] Метаклассы в Python

    [Перевод] Метаклассы в Python

    Привет, Хабр! У нас продолжается распродажа в честь черной пятницы. Там вы найдете много занимательных книг. Возможен вопрос: а что такое метакласс? Если коротко, метакласс относится к  классу точно как класс к объекту. Метаклассы – не самый популярный аспект языка Python; не сказать, что о них воспоминают в каждой беседе. Тем не менее, они используется в весьма многих статусных проектах: в частности, Django ORM[2], стандартная библиотека абстрактных…

    Читать далее »
  • ХабрахабрФото Python: метапрограммирование в продакшене. Часть вторая

    Python: метапрограммирование в продакшене. Часть вторая

    При правильном использовании оно позволяет быстро и элегантно реализовывать сложные паттерны проектирования. Мы продолжаем говорить о метапрограммировании в Python. В прошлой части этой статьи мы показали, как можно использовать метаклассы, чтобы изменять атрибуты экземпляров и классов. Больше о возможностях метапрограммирования вы сможете узнать на курсе Advanced Python. Теперь посмотрим как можно изменять вызовы методов. Отладка и трейсинг вызовов Например, заменить…

    Читать далее »
  • ХабрахабрФото Python: метапрограммирование в продакшене. Часть первая

    Python: метапрограммирование в продакшене. Часть первая

    Помимо этого, такие известные Python-фреймворки, как Django, DRF и SQLAlchemy, используют метаклассы, чтобы обеспечить легкую расширяемость и простое переиспользование кода. Многие считают, что метапрограммирование в Python излишне усложняет код, но если использовать его правильно, то можно быстро и элегантно реализовать сложные паттерны проектирования. Еще больше о возможностях метапрограммирования можно узнать на курсе Advanced Python. В этой статье расскажу, почему не…

    Читать далее »


Кнопка «Наверх»