@ru_python

Страница 3734 из 9768
I'm_your_god
11.09.2017
05:22:22
Кому то стоит английский получить ("futher", lool)
май инглиш из вэри вел, маривановна

:D

Pavel
11.09.2017
05:22:44
super(B, self).some_func(*args, **kwargs) явно же вызываем родительскую функцию, которая декорирована. Очень странный wtf

Google
I'm_your_god
11.09.2017
05:23:23
что странного? Просто вопрос на внимательность и понимание внутренностей

Pavel
11.09.2017
05:25:38
Разве это втф?
На первый взгляд это может показать не очевидным, но запомните. В таком наследовании декоратор дёрнется дважды! ну, мне показалось что автор сообщения писал в духе "ни хрена себе, мы вызываем функцию и она вызывается!"

Маришка
11.09.2017
05:26:09
+

Maxim robox
11.09.2017
05:26:13
Маришка
11.09.2017
05:26:15
Тут это явно все

I'm_your_god
11.09.2017
05:26:38
ну кароч как обычно ссаными тряпками закидали

Ildar
11.09.2017
05:26:48
а ты как хотел?

Maxim robox
11.09.2017
05:26:48
Наслаждайся. =)

I'm_your_god
11.09.2017
05:26:55
вам вот ясно всё и понятно, ну и молодцы :D

Aragaer
11.09.2017
05:26:58
для доклада на каком-нибудь питонмитапе

митонпитапе

I'm_your_god
11.09.2017
05:27:06
наверно все неибаться стартаперы миллионеры

Google
I'm_your_god
11.09.2017
05:27:40
да я уже на плутоне

Ildar
11.09.2017
05:27:40
наверно все неибаться стартаперы миллионеры
я это знаю, потому что посмотрел один видос, а так я вообще в процессе изучения основ питона

Там хоть нормально рассказали, что такое декоратор и нах он нужен

Lulz
11.09.2017
05:28:20
да я уже на плутоне
Маришка точно была миллионером(миллионерка\миллионерша)

Ildar
11.09.2017
05:28:54
Lulz
11.09.2017
05:29:22
какие же сложные юморески здесь

питоняшка

Aleserche
11.09.2017
05:30:59
сначала прочитал как фитоняшка

Lulz
11.09.2017
05:31:23
сначала прочитал как фитоняшка
про это я позже узнаю

Aleserche
11.09.2017
05:31:37
ок. Держи нас в курсе

Arrow
11.09.2017
05:54:56
вопрос по django: если у меня в адресной строке должна передаться довольно длинная строчка urlencoded (типа "Hello+World+%21") как мне ее отловить? Написать в urls регулярку типа такой? "(?P<code>[A-Za-z\d%]+)" А оно само сделает urldecode или надо еще какой-то функцией его обработать? если надо то какой?

Николай
11.09.2017
05:56:25
Ildar
11.09.2017
05:57:10
А что за видео? Можно ссылку
https://www.youtube.com/watch?v=7lmCu8wz8ro

Николай
11.09.2017
05:58:41
Спасибо ?

dk
11.09.2017
05:58:51
Надо будет спросить у наших питонистов, ознакомились ли они с работы Джеймся Пауэла. А то вдруг они и не эксперты никакие...

Arrow
11.09.2017
05:59:10
никто не может подсказать?

Ildar
11.09.2017
05:59:40
никто не может подсказать?
есть же чатик по джанге, тут его не особо любят, как я понял по истории общения

Arrow
11.09.2017
06:01:56
Google
Arrow
11.09.2017
06:02:02
Можно так можно так

Arrow
11.09.2017
06:03:25
т.е. там подставлены % вместо символов невозможных в url?

Maxim robox
11.09.2017
06:05:29
а она будет urlencoded?
Из query параметра сама раскодируется, если не путаю. Если из path kwarg, то самому надо будет декоднуть. Но это же не проблема в любом случае.

Arrow
11.09.2017
06:05:49
какая функция?

чет в гугле пишет только теплейтовский тег urlencode, urldecode нету

Maxim robox
11.09.2017
06:07:59
какая функция?
urllib.parse.unquote

Arrow
11.09.2017
06:09:22
urllib.parse.unquote
хмм плюсы (которые вместо пробелов) она правда не убирает, но остальное раскодирует

ок, спасибо

Arrow
11.09.2017
06:10:18
Tony
11.09.2017
08:05:57
def decorator(func): def wrapper(): func() return wrapper это синтаксис декоратора. А почему не def decorator(func): return func ?

другими словами зачем нужен wrapper если можно прописать доп действия в декораторе

Aragaer
11.09.2017
08:07:35
зависит от того, когда эти действия нужны

если они должны выполняться тогда, когда вызывается декоратор - можно так. А если они должны выполняться тогда, когда вызывается декорированная функция, то нужен враппер

Tony
11.09.2017
08:08:13
зависит от того, когда эти действия нужны
ну в питоне декоратор именно таким образом написан. Почему?

Aragaer
11.09.2017
08:08:56
def decorator(func): print("decorator called") def wrapped(): print("decorated function called") return wrapped

Tony
11.09.2017
08:09:05
@decorator def abc(): return 1

Google
Aragaer
11.09.2017
08:10:16
внутри и снаружи враппера разные вещи делаются. В разное время

Tony
11.09.2017
08:10:22
abc() вызовет декоратор, который вызовет функцию

Aragaer
11.09.2017
08:10:52
abc() не вызовет декоратор. Он сразу вызовет враппер

Admin
ERROR: S client not available

Tony
11.09.2017
08:11:19
аааааааа

кажется понял

Aragaer
11.09.2017
08:11:42
запись @decorator def abc(): return 1 более-менее эквивалентна следующему: def func(): return 1 abc = decorator(func)

Tony
11.09.2017
08:11:44
то бишь функция внутри враппера сидит

Lulz
11.09.2017
08:12:12
abc() не вызовет декоратор. Он сразу вызовет враппер
декоратор инциализируется при старте программы же, да?

т.е исполняется

Aragaer
11.09.2017
08:12:28
при выполнении инструкции def

Aragaer
11.09.2017
08:13:17
теоретически я могу сделать такое: if something: @decorator def abc(): return 1 else: @other_decorator def abc(): return 2

но за такое побьют ногами же 8)

Lulz
11.09.2017
08:13:36
по почкам©

Aragaer
11.09.2017
08:13:55
питон интерпретируемый, поэтому "при старте" это "при прочтении"

по-моему когда у декоратора еще и аргумент есть, там еще больше слоев накручивается

Aragaer
11.09.2017
08:15:38
да, точно

Google
Aragaer
11.09.2017
08:16:32
def decorator(param): def actual_decorator(func): def wrapper(): func() return wrapper return actual_decorator

ilya
11.09.2017
08:16:51
зачем?
чтобы можно было передать аргументы декоратору, а не оборачиваемой ф-ции

Lulz
11.09.2017
08:17:59
питон интерпретируемый, поэтому "при старте" это "при прочтении"
да. я имел ввиду, что если даже не дергать функцию, то при инициализации дернется print т.е сам декоратор?

Lulz
11.09.2017
08:18:21
да
вот, все, спокоен

Tony
11.09.2017
08:19:43
def decorator(param): def actual_decorator(func): def wrapper(): func() return wrapper return actual_decorator
а, потому что при @decorator() вызовется функция под декоратором. Верно?

Aragaer
11.09.2017
08:20:31
def speak(name): def actual(func): def wrapper(): print("hey, {}, I'm calling func".format(name)) func() return wrapper return actual @speak("user") def abcd(): return 1

Tony
11.09.2017
08:21:07
выведет сначала строку, потом вернет 1

ilya
11.09.2017
08:21:41
кстати лучше использовать @wraps(func) дополнительно перед def wrapper():, чтобы не было беды :)

Artem
11.09.2017
08:22:09

Страница 3734 из 9768