Публикации по теме 'metaprogramming'


Новый декоратор класса dataclass в Python3.7
Когда я наткнулся на новые функции, добавленные в Python 3.7, мое внимание привлек недавно добавленный модуль, известный как «классы данных». Этот модуль предоставляет декоратор класса под названием «dataclass», который охватывает определение класса и очень похож на «collections.namedtuple». На первый взгляд это выглядело как чистая магия, потому что, согласно документации, это делает черную магию с «аннотациями», которые были добавлены в python3.5, и внедряет методы класса, такие как..

Решает как робот. НЕТ! (Логическое выражение в Ruby)
Иногда нам следует создавать надоедливые «правила» для принятия решений, когда мы кодируем такие вещи. if foo & bar & a.eql?('foo') || foo_bar == bar || ... # and so on Поэтому, чтобы он оставался «разборчивым», мы должны сделать некоторые улучшения, например, создать методы для повторного использования некоторых операторов или просто вложить операторы, чтобы избежать длинных строк кода. Но, если мы мыслим как «машина», мы должны интерпретировать «истинные» и «ложные» значения..

Метапрограммирование с React
Цель не в том, чтобы вдаваться в подробности о том, что такое метапрограммирование и его методы, а только в том, чтобы увидеть пример того, как его применять в React. Это мой первый пост на этом фантастическом носителе, и я хотел бы немного написать об одной технике, которую мы уже применяли однажды в жизни (от программиста), но которую мы можем не знать в деталях, метапрограммирование ! Приведенный ниже код является примером использования конструкции Proxy и API Reflect..

Метапрограммирование в JavaScript с помощью jscodeshift
Часть 1: Как анализировать и модифицировать ваши программы Метапрограммирование - мощный, но недооцененный инструмент. Несмотря на то, что многие широко используемые инструменты разработки используют его под капотом, интерес к метапрограммированию неуклонно снижается (по крайней мере, согласно данным Google Trends): Тенденция могла быть вызвана множеством причин. Раньше это был довольно популярный инструмент в тех областях, в которых сегодня процветает машинное обучение. По мере..

Вопросы по теме 'metaprogramming'

Как использовать boost::mpl для составления политик?
Я использовал что-то вроде следующего для составления политик для своего приложения: Классы политик выглядят следующим образом: struct Policy { static void init(); static void cleanup(); //... }; template <class CarT, class CdrT>...
2250 просмотров
schedule 22.11.2022

Является ли метапрограммирование шаблонов быстрее, чем эквивалентный код C?
Является ли метапрограммирование шаблонов быстрее, чем эквивалентный код C? (я говорю о производительности во время выполнения) :)
4703 просмотров

Почему я не могу использовать attr_accessor внутри инициализации?
Я пытаюсь сделать instance_eval , за которым следует attr_accessor внутри initialize , и я продолжаю получать это: ``initialize': неопределенный метод 'attr_accessor'`. Почему это не работает? Код выглядит примерно так: class MyClass...
5184 просмотров
schedule 23.09.2022

Как избежать class_eval в метапрограммировании Ruby
Я хочу иметь метод класса return_empty_set в Ruby, аналогичный методам attr_reader . Моя предлагаемая реализация class Class def return_empty_set *list list.each do |x| class_eval "def #{x}; Set.new; end" end end end и...
665 просмотров
schedule 10.05.2024

C++ pimpl idiom: Реализация в зависимости от параметра шаблона
В этом вопросе я безуспешно спрашивал, как использовать различную реализацию pimpl в зависимости от аргумент шаблона. Возможно, этот пример лучше иллюстрирует то, что я пытаюсь сделать: #include <iostream> template< int N, typename...
1359 просмотров

константа спасения руби отсутствует?
несколько месяцев назад я использовал некоторую рубиновую библиотеку (к сожалению, я не могу вспомнить, какую именно) Я был удивлен, увидев, что он позволил мне инициализировать его экземпляр примерно так: Lib::SOMETHING(args) Я вообще не...
645 просмотров
schedule 05.01.2024

Список базовых классов для использования с вариативными шаблонами
Есть ли способ получить доступ ко всем базовым классам класса в С++? Поскольку доступны шаблоны с переменным числом аргументов, я думаю, было бы целесообразно иметь, например. ___BASE, который представляет собой вариативный список всех типов, из...
275 просмотров
schedule 20.04.2024

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

Книга про Джанго все еще актуальна?
Я хочу покопаться во внутренностях Django, а официальная онлайн-документация доходит только до этой цели. Обзоры Pro Django Марти Алчина просто фантастические (я читал Pro Python, и он мне очень понравился). Однако книга выпущена в 2008 году и...
2254 просмотров
schedule 05.03.2024

Почему C++ разрешает, но игнорирует применение const к типам функций?
Я получаю настоящее удовольствие от изучения необычных уголков C++. Узнав о реальных типах функций, а не об указателях функций из этот вопрос , я пытался возиться с типизацией функций и придумал такой странный случай: typedef int Func(int); int...
875 просмотров

включить модуль в класс с помощью метода класса, ссылающегося на модуль, который должен быть включен
У меня есть следующий пример class Test configure_helper end module ConfigureHelper module ClassMethods def configure_helper end end end ConfigureHelper имеет еще несколько функций, которые расширят класс с помощью...
131 просмотров
schedule 08.10.2022

Может ли Java Classloader переписать байт-код (только их копию) системных классов?
Итак, у меня есть загрузчик классов (MyClassLoader), который поддерживает набор «специальных» классов в памяти. Эти специальные классы динамически компилируются и хранятся в массиве байтов внутри MyClassLoader. Когда MyClassLoader запрашивает класс,...
5994 просмотров

Как реализован super() в Python 3?
Мне интересно, как реализован новый супер в Python 3. Этот вопрос родился у меня в голове после того, как я сделал небольшой пример и получил странную ошибку. Я использую архитектуру компонентов Pyutilib (PCA) и сделал мой собственный метакласс...
2893 просмотров

Smalltalk: как изменить свое поведение
Я переношу свою любимую библиотеку Java/JavaScript Mocktito на Smalltalk. В настоящее время я нахожусь на этапе внедрения Spy для заглушки реальных объектов. Моя проблема возникает, когда шпионский объект вызывает свой собственный метод, который...
301 просмотров
schedule 04.02.2024

Модификация метакласса Grails ненадежна в модульных тестах
В проекте Grails 2 я использую программирование метаклассов groovy, чтобы добавить некоторые методы в свои доменные классы. Все работает нормально во время выполнения, и я могу нормально запускать свои интеграционные тесты. Но для модульных...
991 просмотров
schedule 03.10.2022

Динамическое создание метода класса
Я пишу метод класса, чтобы создать другой метод класса. Кажется, есть некоторая странность в том, как class_eval и instance_eval работают в контексте метода класса. Проиллюстрировать: class Test1 def self.add_foo self.class_eval do #...
928 просмотров
schedule 01.11.2023

Динамические параметры для метапрограммирования в JavaScript?
Я хочу делегировать несколько методов из одного JavaScript-объекта в другой. Поэтому я подумал об использовании метапрограммирования, чтобы несколько методов не определялись просто как делегаты. Пока я остановился на этом методе: function...
590 просмотров

Автоматическое добавление префиксов функций к функциям C++
Я переношу небольшую кодовую базу C++ для вызова на графической карте через CUDA. CUDA требует, чтобы все функции начинались с __host__ __device__ , чтобы их можно было вызывать как на ЦП, так и в коде ядра графического процессора. например.,...
162 просмотров
schedule 10.01.2024

Почему Module.methods() и response_to? в irb работает иначе, чем в скрипте?
Я пытаюсь использовать рефлексивные методы в Ruby и сталкиваюсь с поведением, которое я нахожу действительно удивительным. Следующие примеры работают по-разному в IRB и при вызове ruby-скрипта: Пример 1: def myfun; end p respond_to?(:myfun)...
173 просмотров
schedule 08.03.2024

SystemStackError — слишком глубокий уровень стека: использование метапрограммирования с ActiveRecord
Мне нужно получить все возможности для current_user в :json для моего магистрального приложения. Итак, первая идея состояла в том, чтобы добавить что-то вроде этого: def receive_user_abilities # we will return onty hash for works and tasks w...
348 просмотров
schedule 03.11.2022