utros
22.05.2012 12:28
Хочу оператор eat, который бы подавлял исключение вызываемой команды, чтобы вместо
try:
somefunc(arg, kwarg=123)
except:
pass
писать
eat:
somefunction(arg, kwarg=123)
или даже
eat(somefunction, arg, kwarg=123)
этот ваш пистон не умеет в макросы ?
Декоратор может?
or die
Без особых костылей не умеет.
Правда он интерпретируемый и макросы там как собаке пятая лапа.
Что-то я не помню, чтобы можно было декорировать _вызов_ функции.
Это как-раз наоборот.
А если передавать функцию в декорированную функцию?
грабь убивай замалчивай ошибки
функция должна нахываться "подавись"
я писал декоратор @pokemon.
(для этих целей)
поскольку никто не проявил интерес — объясню причину названия: http://www.dodgycoder.net/2011/11/yoda-c...
(см. пункт 2)
Ну последний юз-кейс кстати, легко реализуется, да и безо всяких декораторов.
Вообще, я посмотрел свой кот и понял чего конкретно хочу: что-то вроде try-except, но после перехвата эксепшна переходящее к следующей строчке в блоке, вместо того, чтобы выходить из него.
Пеши на похапе, там есть @
Вот оно мне как раз и нужно. Только в питухоне.
а еще там есть include, require, include_once, require_once. вообще охуеть.
у тебя же она в виде обычной функции, возьми и сделай
/13
эксепшн — это не то, что тебе надо в данном случае. Поблевал с твоей архитектуры
Ты нихуя не понял. Видишь там на горе возвышается крест? Повиси-ка на нём, а когда надоест, возвращайся назад, разговаривать про архитектуру и питон со мной.
VAUTE AT'OH TEEBEH PREEPIUQLO
тогда делаешь частичное применение через связывание лямбдой, чтобы связать все параметры, делаешь класс/функцию, который/ая конструируется на основе функтора без аргументов и дергает его в ограждении pass.
Как-то так на кэмле было бы:
let eat f = try f () with _ → () ;;
let g x = failwith "BOO!" ;;
eat (fun () → g 4) ;;
Даже не зная, что ты пишешь на крестах, я бы догадался...
Это совсем костыли, тут выше предлагали проще.
Эта лямбда чудесно инлайнится почти любым нормальным концпелятром, а кроме того, решение логично вписывается в концепции ФЯП.
Питон ни разу не ФЯ и там такие костыли очень дорого обойдутся.
> концпелятром
Успокойся!
Питон сам костыль, так что еще один экземпляр в ряду погоды не делает.
Ну да, питонисты соснули, как всегда :)
А что, а PyPy с житом ?
Костыль, но обычно единственный у меня в коде :)
А он нафиг не нужен пока в нём не запилят FFI/нормальную работу с сишными модулями и нормальную работу с легковесными потоками.
Ну и плюс к тому, конпилятор != джит.
конечно, равенства нет, но нормальные житы умеют в инлайн, инфа 100%.
Это уже не инлайн ;)
почему inline на уровне IL не является инлайном, ну-ка ?
Потому, что там нет ключевого слова "inline", очевидно же.
А вообще, это банальный обход мёртвого кода и никакого инлайна в привычном нормальному программисту понимании там не происходит (ну по крайней мере в сферическом JIT'е в вакууме).
какой ты пиздец, U.
Ггг.
главное что нефть дешёвая
Choke, хороший фильм кстати
дваждую