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

Метапрограммирование - это возможность перепрограммировать среду программирования, как с макросами или метаклассами.
11

Словарь Python из полей объекта

Знаете ли вы, есть ли встроенная функция для создания словаря из произвольного объекта? Я хотел бы сделать что-то вроде этого: >>> class Foo: ... bar = 'hello' ... baz = 'world' ... >>> f = Foo() >>> props(f) { 'ba...
14 сент. '08 в 18:00
5

Как создать пользовательское строковое представление для объекта класса?

Рассмотрим этот класс: class foo(object): pass Строковое представление по умолчанию выглядит примерно так: >>> str(foo) "<class '__main__.foo'>" Как я могу сделать это отображение пользовательской строкой?
08 февр. '11 в 11:27
5

Может ли строка кода Python знать уровень вложенности вложения?

От чего-то вроде этого: print(get_indentation_level()) print(get_indentation_level()) print(get_indentation_level()) Я хотел бы получить что-то вроде этого: 1 2 3 Может ли код считывать себя таким образом? Все, что я хочу, это вы...
26 авг. '16 в 18:07
4

Как передать аргументы define_method?

Я хотел бы передать аргумент методу, определяемому с помощью define_method, как бы я это сделал?
18 сент. '08 в 3:03
14

Удобное объявление строк времени компиляции в С++

Возможность создавать строки и манипулировать ими во время компиляции в C++ имеет несколько полезных применений. Хотя в C++ можно создавать строки времени компиляции, процесс очень громоздкий, так как строка должна быть объявлена как последовательно...
07 апр. '13 в 2:10
4

Вызов функции из строки с именем функции в Ruby

Как я могу сделать то, что они говорят о здесь, но в Ruby? Как бы вы выполняли функцию на объекте? и как бы вы сделали глобальную функцию (см. jetxee ответ на указанную должность)? ПРИМЕР КОД: event_name = "load" def load() puts "load() funct...
10 сент. '09 в 20:10
3

Objective-C class &#8594; string like: [NSArray className] &#8594; @ "NSArray"

Я пытаюсь получить строковое имя класса из самого объекта класса. // For instance [NSArray className]; // @"NSArray" Я нашел object_getClassName(id obj), но это требует, чтобы экземпляр был передан ему, и в моем случае это бесполезная работа. Ит...
25 февр. '10 в 6:01
13

Как управлять компилятором С#, С++ или Java для вычисления 1 + 2 + 3 +... + 1000?

В недавнем интервью мне задали действительно странный вопрос. Интервьюер спросил меня, как я могу вычислить 1 + 2 + 3 +... + 1000, просто используя функции компилятора. Это означает, что мне не разрешено писать программу и выполнять ее, но я должен п...
06 янв. '12 в 19:40
3

Можно ли определить тип параметра и тип возврата лямбда?

Учитывая лямбда, можно ли определить тип параметра и тип возвращаемого значения? Если да, то как? В принципе, я хочу lambda_traits, который можно использовать следующими способами: auto lambda = [](int i) { return long(i*10); }; lambda_traits<...
30 окт. '11 в 5:47
8

Лучшее введение в метапрограммирование шаблонов С++?

Статическое метапрограммирование (он же "метапрограммирование шаблонов" ) - отличный метод С++, который позволяет выполнять программы во время компиляции. В моей голове появилась лампочка, как только я прочитал этот пример канонического метапрограмми...
21 сент. '08 в 21:50
8

Примеры С++ SFINAE?

Я хочу получить больше мета-программирования шаблонов. Я знаю, что SFINAE означает, что "сбой замены - это не ошибка". Но может ли кто-нибудь показать мне хорошее применение для SFINAE?
11 июн. '09 в 18:25
1

Как Pony (ORM) делает свои трюки?

Pony ORM делает хороший трюк преобразования выражения генератора в SQL. Пример: >>> select(p for p in Person if p.name.startswith('Paul')) .order_by(Person.name)[:2] SELECT "p"."id", "p"."name", "p"."age" FROM "Person" "p" WHERE "...
20 апр. '13 в 1:53
31

Python Vs. Ruby для метапрограммирования

В настоящее время я в первую очередь программист D и хочу добавить еще один язык в свой набор инструментов, желательно тот, который поддерживает метапрограммирование хаков, которые просто невозможно сделать на статически скомпилированном языке, таком...
27 сент. '08 в 22:50
7

Как использовать define_method для создания методов класса?

Это полезно, если вы пытаетесь создать метапрограммирование методов класса: def self.create_methods(method_name) # To create instance methods: define_method method_name do ... end # To create class methods that refer to the ar...
15 апр. '09 в 17:03
4

Как преобразовать имя класса Ruby в символ с разделителем подчеркивания?

Как я могу программным образом превратить имя класса FooBar в символ :foo_bar? например что-то вроде этого, но верно ли это для верблюда? FooBar.to_s.downcase.to_sym
11 апр. '11 в 14:03