@spbpython

Страница 308 из 785
Sergey
02.03.2017
11:17:43
Ну сахар же, да

Sergey
02.03.2017
11:17:43
какие вопросы по декораторам стоит задавать? я знаю, что это просто функция и эквивалентно foo = d(foo), что еще нужно знать?

Eugene
02.03.2017
11:17:46
Это удобно если надо обворачивать не на этапе импорта :)

Google
Sergey
02.03.2017
11:18:10
Sergey
02.03.2017
11:18:11
да то же самое по сути

Stepan
02.03.2017
11:18:18
любопытно, что в JS я по декораторам не скучаю - когда есть нормальные лямбды то и декораторы как-то не очень нужны

Eugene
02.03.2017
11:18:26
Не то же самое

Sergey
02.03.2017
11:18:31
в чем разница? видимо, я чего-то не знаю

Stepan
02.03.2017
11:19:09
но в питоне я люблю городить пачки декораторов :3

Eugene
02.03.2017
11:19:19
В том что надо в __call__ писать и класс декоратора можно инициализировать

Sergey
02.03.2017
11:19:33
ну, это мало что меняет для меня

никакой магии тут нет

Eugene
02.03.2017
11:20:21
Магии нет, но иногда это нужно

Serge
02.03.2017
11:20:24
В том что надо в __call__ писать и класс декоратора можно инициализировать
более того, с декораторами-классами классно писать, чтобы @decorator работало как @decorator()

Aleksey
02.03.2017
11:20:34
Google
Eugene
02.03.2017
11:20:53
Ну а как ещё :))

Sergey
02.03.2017
11:21:10
главное понимать, что происходит за синтаксисом, суметь это преобразовать в обычный вызов callable

а дальше то какие проблемы

Sergey
02.03.2017
11:21:41
лучше попросить сделать какой-нибудь decorator based api
вот это уже более сложный вопрос, кмк, в сторону дизайна

Aleksey
02.03.2017
11:22:30
более того, с декораторами-классами классно писать, чтобы @decorator работало как @decorator()
В джанге видел вариант, когда это была функция, но вначале там проверка, параметр callable или нет, а потом уже либо как @decorator, либо начинаются замыкания и проч.

Stepan
02.03.2017
11:22:48
вот это уже более сложный вопрос, кмк, в сторону дизайна
чего чего, а умение дизайнить надо проверять на собеседованиях )

Sergey
02.03.2017
11:23:15
чего чего, а умение дизайнить надо проверять на собеседованиях )
я согласен! имел в виду, что это хороший вопрос

Serge
02.03.2017
11:23:46
Aleksey
02.03.2017
11:24:42
Serge
02.03.2017
11:25:34
вот это признаю, что прикольно
только это проще всего с метаклассом написать;) с obejct.new(), скорее всего, тоже костыляво получится:D

Stepan
02.03.2017
11:25:51
угу

Valery
02.03.2017
11:52:31
так а все нашли ошибку, же, да?:) или нужна помощь кому-то?:)
Убрать скобки в последней строке декоратора? Сейчас он возвращает результат выполнения функции а должен саму функцию.

Serge
02.03.2017
12:34:48
чо то накатило;) https://pypi.python.org/pypi/decoratorium

Stepan
02.03.2017
12:39:19
Dmitry
02.03.2017
12:39:27
хых)

Serge
02.03.2017
12:40:45
чо то накатило;) https://pypi.python.org/pypi/decoratorium
в итоге, все равно надо callable проверять;)

Александр
02.03.2017
12:54:28
в итоге, все равно надо callable проверять;)
А какую этот модуль решает проблему?

Google
Serge
02.03.2017
12:55:22
А какую этот модуль решает проблему?
:) лол. дает возможность не писать самому обвязку с __new__ и __call__

Dmitry
02.03.2017
13:23:08
офигеть, на новых джангах сентри ловит эксепшны из `manage.py shell`­ в том числе.

Danil
02.03.2017
13:25:55
видимо новые джанги стали настройки логгера прокидывать в shell?

Andrey
02.03.2017
13:36:36
чо то накатило;) https://pypi.python.org/pypi/decoratorium
а что ни докстринги не прокинул, ничего?

или это предполагается всем пользователям самим в wrapper вписывать?

Serge
02.03.2017
13:41:55
а что ни докстринги не прокинул, ничего?
ты прав, надо с functools.wrap поиграть;) ну, можешь добавить или багу накатать;)

Александр
02.03.2017
13:42:19
:) лол. дает возможность не писать самому обвязку с __new__ и __call__
Кстати, не оверинжиниринг ли это? Во вселенной декораторов это конечно было бы супер. Но часто ли в проекте их пишут?

Eugene
02.03.2017
13:42:49
Вот кстати вопрос для собеседования: как декоратор научить мимикрировать под обворачиваемую сущность :)

Eugene
02.03.2017
13:44:49
:))) я делал по-простому пока генератор документации не сломался.

Serge
02.03.2017
13:46:26
У меня от одного вопроса мозг уже мимикрировал)))
https://docs.python.org/3/library/functools.html#functools.wraps

Александр
02.03.2017
13:47:15
https://docs.python.org/3/library/functools.html#functools.wraps
Спасибо, сейчас прочитаю

GNU/Docker
02.03.2017
13:49:10
https://hynek.me/articles/decorators/

Dmitry
02.03.2017
13:49:28
https://hynek.me/articles/decorators/
вот тоже вспомнил

GNU/Docker
02.03.2017
13:49:47
не всё с ними просто

Anton
02.03.2017
13:53:17
Кстати, а в тему сентри, кто-то может толково навести на правильный путь, как дропнуть ghost миграции

В virtualenv не вижу manage.py чтобы им откатить

Google
Sergey
02.03.2017
13:55:43
http://pythonhosted.org/decorator/documentation.html а, у Хайнека есть ссылка на него как раз

Eugene
02.03.2017
14:17:10
Кстати, вот ещё прикол. Пробовали наследоваться, например, от frozenset? Если __new__ не переопределить, будет ошибка.

И super там вроде не работает

Помню писал что-то такое: def __new__(cls, value, name=None): if not isinstance(value, (tuple, list)): value = [value] return frozenset.__new__(cls, value)

Serge
02.03.2017
14:20:21
вот тоже вспомнил
да да, надо его в decoratorium:)

Vadim
02.03.2017
14:21:01
как я ща эпично зафэйлил собеседование

переволновался(

Admin
ERROR: S client not available

Eugene
02.03.2017
14:21:20
Расскажи :)

Vadim
02.03.2017
14:21:40
да на джуна

не смог рассказать, что такое параметры функции

хотя тестовое задание на джанге им сделал

вот я лузер

Serge
02.03.2017
14:23:12
не смог рассказать, что такое параметры функции
в такой формулировке я тоже не очень понимаю что рассказывать;)

Sergey
02.03.2017
14:24:00
хотя тестовое задание на джанге им сделал
а какое тестовое задание было?

GNU/Docker
02.03.2017
14:24:04
по регистрам кладёшь их вобщем, что не влезло - на стек в обратном порядке, а потом интеррапт зовёшь

кек

Sergey
02.03.2017
14:24:35
о_О

Google
Gregory
02.03.2017
14:24:39
да на джуна
Тож на джуна сегодня ходел на интервью. Не зафейлил.

Vadim
02.03.2017
14:26:04
Тож на джуна сегодня ходел на интервью. Не зафейлил.
ну респект тебе и уважуха, бро. Буду на тебя равняться.

Gregory
02.03.2017
14:26:19
Не стоит :о

Vadim
02.03.2017
14:27:15
это ответ?
это про a и b параметры

GNU/Docker
02.03.2017
14:27:25
А.

Sergey
02.03.2017
14:27:29
это про a и b параметры
Формулировка вопроса-то какой была?

Eugene
02.03.2017
14:27:30
Аргументы

Gregory
02.03.2017
14:27:52
ну респект тебе и уважуха, бро. Буду на тебя равняться.
Но меня спрашивали про ооп, общие вопросы, типы данных, за итераторы, чем 2 и 3 отличаются. вроде всё ответил и интервьюверу было норм

GNU/Docker
02.03.2017
14:27:57
Про арги и кварги видимо хотели услышать.

Александр
02.03.2017
14:35:06
так им надо было не с аргументов начинать, а еще раньше. это они довольно глубоко сразу копнули

Eugene
02.03.2017
14:35:49
Про обязательные аргументы знаешь? def f(a, b, *, c):

И почему эту функцию можно вызвать только с обязательным указанием имени для "с"? :)

Александр
02.03.2017
14:41:53
Про обязательные аргументы знаешь? def f(a, b, *, c):
Интересно, а какой ответ был бы достаточным? Ну вот есть self для функций классов на первом месте для текущего инстанса, *value - список значений, **kyeword - список наименованных значений есть обязательные (без значения по-умолчанию), не обязательные аргументы (списки и со значениями по-умолчанию). что еще надо добавить?

Страница 308 из 785