
Сергей
17.12.2016
19:13:31
не объявить переменную b глобальной*

Андрей
17.12.2016
19:15:11
если внутри функции ты не объявлял переменную, не присваивал ей никаокго значения, то функция подхватит ранее заданную переменную, если она вообще была задана

Сергей
17.12.2016
19:15:41
понял, учту, а что такое декоратор, если на пальцах?

Yokai
17.12.2016
19:16:14
функция, которая берет твою функцию и заменяет ее другой, внутри которой выполняется твоя и что-нибудь еще

Google

Андрей
17.12.2016
19:16:26
я значит медленно писал то же самое

CthUlhUzzz
17.12.2016
19:16:39
Не заменяет только
А заворачивает

Андрей
17.12.2016
19:17:06
ну изменяет поведение функции по сути

Aragaer
17.12.2016
19:17:18
не функцию, а любой коллабл

CthUlhUzzz
17.12.2016
19:17:19
Не

Сергей
17.12.2016
19:17:46
понял, не заменяет, а берём эту функцию внутрь себя и и выполняет её и что либо ещё

CthUlhUzzz
17.12.2016
19:17:52
В декоратор передается функция, которая была объявлена с этим декоратором

Aragaer
17.12.2016
19:17:52
и не обязательно меняем

Сергей
17.12.2016
19:17:53
спасибо, ясно как день объяснили

Aragaer
17.12.2016
19:18:00
декоратор выполняется сразу
и возвращает новый коллабл. Он может ничего и не менять, просто сделать что-то прямо вот сейчас

Google

Aragaer
17.12.2016
19:18:33
например зарегистрировать коллбэк

Artem
17.12.2016
19:18:42
@dec
def bar(): ...
это просто сахар для
def bar(): ...
bar = dec(bar)
где dec - это функция, принимающая функцию как аргумент и возвращающая функцию

Андрей
17.12.2016
19:19:22
какие же вы тут все охуенные, ну вот честно. прям приятно читать вас всех

CthUlhUzzz
17.12.2016
19:20:11
Лол

Сергей
17.12.2016
19:20:34
Артём, сложновато объяснил

Андрей
17.12.2016
19:20:54
не, ну круто же. со всех сторон объяснили, никого говном не облили.

Сергей
17.12.2016
19:20:56
всё понял но, возрващает функцию, это что значит?
я вообще слово "возвращает" с трудом понимаю

Artem
17.12.2016
19:21:34
def x():
def y(): pass
return y

CthUlhUzzz
17.12.2016
19:22:03
В декораторы можно еще и классы заворачивать

Сергей
17.12.2016
19:22:03
возвращает y в данном случае

CthUlhUzzz
17.12.2016
19:22:23
Но тут выше писали уже

Artem
17.12.2016
19:22:24
да. не результат выполнения y, а саму y.
ты потом можешь вызвать x()() и выполнится pass

Сергей
17.12.2016
19:22:57
понял, и там так же, возвращает саму функцию а не её выполненный вариант
теперь понял, спасибо

CthUlhUzzz
17.12.2016
19:23:29
Грубо говоря ты можешь дописать какие-то действия в исходную функцию

Сергей
17.12.2016
19:24:27

CthUlhUzzz
17.12.2016
19:24:48
Да

Сергей
17.12.2016
19:25:05
спасибо большое, объяснили очень доступно ?

Google

Андрей
17.12.2016
19:25:05
вот я кстати синтаксис декораторов не очень понимаю. насколько я знаю, они выполняются сразу

Artem
17.12.2016
19:25:49
ну все буквально так, как я писал, они - сахар, выполняются сразу

Андрей
17.12.2016
19:26:54
грубо говоря
def a(func):
return func(3)
@a
def b(c):
return c + 1
но нельзя
def a(func):
return func(3)
def b(c):
return c + 1
@a
b
то есть нахуярил я список функций
иногда одну без декоратора вызвал
иногда с декоратором
и тд
надо обязательно под декоратором объявлять функцию
или я не прав?

CthUlhUzzz
17.12.2016
19:28:15
Оно так не работает)

Андрей
17.12.2016
19:28:23
ну понятно, что не работает

CthUlhUzzz
17.12.2016
19:28:33
https://pythonworld.ru/osnovy/dekoratory.html

CthUlhUzzz
17.12.2016
19:28:43
Здесь неплохо объясняют
На примере сэндвича

Artem
17.12.2016
19:28:54
ты и декоратор не так пишешь
def a(func):
def wrapper(*args, **kwargs):
return func(3)
return wrapper

Андрей
17.12.2016
19:29:41

Artem
17.12.2016
19:29:54
вот так заработает (и да, только над объявлением функции)

Сергей
17.12.2016
19:30:25
Один вопросик ещё, я не могуч в python-е, но хотелось бы знать очерёдность выполнения, то есть бывает так что код который снизу выполнится быстрее чем код сверху?

CthUlhUzzz
17.12.2016
19:30:28
+ в декоратор, помимо функции можно передавать свои аргументы

Google

CthUlhUzzz
17.12.2016
19:30:59

Андрей
17.12.2016
19:31:26
вряд ли он тебе пример сообразит

Сергей
17.12.2016
19:31:34
Пример с ходу привести не смогу
Может особый синтаксис который позволяет писать код ниже, который выполняется раньше чем код выше?

Андрей
17.12.2016
19:32:36
там не бывает раньше или позже

CthUlhUzzz
17.12.2016
19:32:41
Объявление классов/функций не исполняется до их явного вызова

Андрей
17.12.2016
19:32:46
функция под декоратором просто передается как аргумент

Admin
ERROR: S client not available

Андрей
17.12.2016
19:33:18
только в этом примере надо было повыше еще и def dec объявить
и станет понятнее

Сергей
17.12.2016
19:33:55
Понял, понял народ, спасибо ☺

?
17.12.2016
19:34:41
с новым годом вас

Андрей
17.12.2016
19:34:51
чот ты рано начал

?
17.12.2016
19:35:02
хм ну ок

Сергей
17.12.2016
19:35:07
Что, уже !?)
Вроде 17-ое декабря по МСК)

?
17.12.2016
19:35:48
ну как бы уже можно нахрюкаться

Модуль
17.12.2016
19:38:41

Сергей
17.12.2016
19:41:38
И в правду !

Google

Сергей
17.12.2016
19:41:43
Праздник ждать не будет !)
Чем раньше тем лучше !)
???

?
17.12.2016
19:45:05
ок если серьезно то меня интересует след вопрос
сколько получает программист питонознающий в москве??
100-250 тр?

Сергей
17.12.2016
19:46:01
Ничего нового я лично не скажу)
Всё зависит от опыта и того как себя поднесёшь)

Artem
17.12.2016
19:46:37
много неизвестных. Может и меньше, может и больше, если он не только питоно, но еще много чего знающий

Сергей
17.12.2016
19:48:08
Так сказать "ведущий программист", или же глава проекта, там и до 300-400К вполне реально.

?
17.12.2016
19:50:40
нормас

Сергей
17.12.2016
19:52:05
Кто то работал ведущим программистом?
Какие знания нужны, я так понимаю он не узкоспециализированный программист.

Модуль
17.12.2016
19:54:52

Сергей
17.12.2016
19:55:21
То есть, знать всё ?)
Да по сути понял, не смею более отвлекать !)

madmonday.ru
17.12.2016
19:56:06
>>> a = 'test'
>>> b = ""
>>> b in a
True
Объясните логику

Сергей
17.12.2016
20:01:47
b - по сути индекс, так как он пуст, значит 0
на 0 индексе стоит буква 't'
в итоге True

Romuald
17.12.2016
20:01:50
Ребзи привет, есть ли спецы? подсвечивал телефоном чтобы посмотреть модель видеокарты, случайно коснулся контактов, вырубило комп, потом врубило, вместо включения виндовс звук квакал, перегрузил пк, комп просто перестал видеть все джеки? Вылетел чип?

Сергей
17.12.2016
20:02:01
Вот советую почитать тебе об операторах:
http://pythonicway.com/python-operators

b0g3r
17.12.2016
20:02:19