gentoo.ru
python
python@conference.gentoo.ru
Вторник, 6 сентября 2011< ^ >
krigstask установил(а) тему: ЯП Python || https://gist.github.com/289467 || Логи: http://tinyurl.com/gentoo-py-logs || "Python's a drop-in replacement for BASIC in the sense that Optimus Prime is a drop-in replacement for a truck." || Вышел IPython 0.11!
Конфигурация комнаты
Участники комнаты

GMT+4
[09:44:18] pimiento вошёл(а) в комнату
[09:44:36] <pimiento> Доброго всем всего
[10:33:19] <LK4D4> привет
[10:34:20] <pimiento> ботан, видать, в школе? а то я всё никак не могу въехать в декораторы. хотя уже понял для чего они нужны и как они работают, но не пойму как с ними обращаться :)
[10:34:47] <LK4D4> ну напиши что-нибудь с декоратором
[10:41:21] <LK4D4> щас на работу приду, посмотрю тоже что-нибудь
[10:43:10] <pimiento> http://paste.pocoo.org/raw/471177/ - например вот
[10:44:08] <pimiento> даёт такой вывод  http://paste.pocoo.org/raw/471179/
[10:57:43] LK4D4 вышел(а) из комнаты
[11:54:16] <lk4d4> тут наверное какая-то хитрота с декорированием методов
[11:57:48] <pimiento> Там суть проблемы в том, что self это не Person, а tracer
[11:58:25] <pimiento> пока нашёл решение через декоратор __get__, который будет передавать __call__ объект Person
[12:00:25] <pimiento> непонятно только что передаётся в __get__ в переменной instance в случае callable-класса.
[12:21:03] <pimiento> Вот так предлагает делать Лутц
[12:22:25] <lk4d4> блин, а у меня даже есть Лутц, только я его дома оставил
[12:23:08] <pimiento> http://rutracker.org/forum/viewtopic.php?t=3519876
[12:23:22] <lk4d4> у меня не работают торенты на работе
[12:28:33] <pimiento> ftp://vavilin.infinet.ru/Lutz4
[12:28:43] <pimiento> ftp://vavilin.infinet.ru/Lutz4.djvu
[13:02:22] <pimiento> а можно делать raise без вывода трэйса?
[13:06:17] <pimiento> http://paste.pocoo.org/show/471216/ - вот запилил что-то такое, но всё равно не пойму что происходит внутри __get__
[13:07:40] <lk4d4> ну обработать его траем
[13:07:59] <pimiento> кого как?
[13:09:06] <lk4d4> райз свой
[13:09:39] <lk4d4> а вот я смотрю здесь оверкилл по-моему
[13:09:48] <lk4d4> зачем тебе класс-декоратор
[13:09:52] <lk4d4> если можно функцию
[13:09:58] <lk4d4> хотя я вообще не мастер декорирования
[13:10:42] <pimiento> а) по заданию б) а как ещё сделать независимый от функции способ проверки допустимости вызова текущим юзером?
[13:12:15] <lk4d4> по поводу б) не понял
[13:13:40] <pimiento> смысл этого декоратора в проверки авторизованности пользователя для совершения действия. таким образом я могу создавать новые функции и проверять всё тем же декоратором
[13:13:56] <pimiento> s/проверки/проверке/
[13:14:13] <lk4d4> ха, ну и точно так же декоратор-функция будет работать
[13:14:30] <lk4d4> но раз по заданию нужен класс, то тут уже ничего не поделать
[13:16:40] <pimiento> ну там не сказано, что класс, но я использую класс для масштабируемости - например вдруг потом я захочу вести какие-нибудь переменные для класса. типа запоминать количество обращений к функции say_hello от такого-то юзера
[13:17:02] <lk4d4> ну это я и хотел узнать
[13:22:13] <lk4d4> я тоже как-то теряюсь от этого __get__
[13:23:06] <pimiento> http://paste.pocoo.org/show/471218/
[13:23:32] <pimiento> меня смущает только каким я способом меняю значение user.name, ведь я навсегда его меняю?
[13:24:02] <pimiento> но как иначе передавать в say_hello(user) user.name в unicode?
[13:25:34] <lk4d4> а почему бы тебе его всегда в unicode не хранить?
[13:26:38] <pimiento> такого в задании потому что нет :)
[13:27:21] <lk4d4> а передача в say_hello в юникод есть?
[13:27:24] <pimiento> а чувак, который мне эти задания понаписал уехал в отпуск и с ним не проконсультироваться. вот делаю и не знаю - правильно ли вообще делаю
[13:30:52] <lk4d4> ну что ж поделать
[13:31:22] <lk4d4> делай все в юникоде
[13:31:26] <lk4d4> и на третьем питоне
[13:31:50] <pimiento> третий сказали не брать в расчёт - там же джанго пилят по большей части
[13:52:52] <pimiento> http://paste.pocoo.org/show/471236/ - вот пример с функцией декоратором, но непонятно откуда берутся аргументы для wrapper
[13:53:35] <lk4d4> а с классом понятно было?
[13:53:40] <pimiento> неа
[13:54:24] <pimiento> точнее, там было понятно: в def wrapper(): никаких аргументов и не поступало
[13:54:36] <lk4d4> я вроде сам только сейчас понял
[13:54:40] <lk4d4> это же не вызов функции
[13:54:44] <lk4d4> а объявление
[13:55:06] <pimiento> кто из них? def wrapper?
[13:55:13] <lk4d4> да
[13:55:37] <pimiento> а, точно там ведь получается say_hello = wrapper(user)
[13:56:25] <pimiento> точнее say_hello = check_user(say_hello(user)) -> say_hello = wrapper(user)
[14:12:05] <pimiento> Интересно, Б. Акунин "Декоратор" - это про питон?
[15:27:59] <pimiento> Оставил пока я эти декораторы, балуюсь с модулями библиотечными. И вот вопрос: можно ли интернационализировать вывод calendar?
[15:29:57] <pimiento> Похоже, надо Babel прикручивать
[15:41:53] <pimiento> что за фигню мне выдаёт модуль locale: import locale; locale.YESEXPR выдаёт 327680
[16:08:15] pimiento вышел(а) из комнаты
[18:23:23] pimiento вошёл(а) в комнату
[18:23:45] <pimiento> Доброго всем всего вновь
[18:23:56] <pimiento> maksbotan: говорят, ты в декораторах силён
[19:28:24] LK4D4 вошёл(а) в комнату
[21:19:43] maksbotan вошёл(а) в комнату
[21:20:31] <maksbotan> что
[21:20:35] <maksbotan> кому там декораторы надо
[21:26:43] <pimiento> Мне - три часа назад :)
[21:27:08] <pimiento> у меня было пару вопросов по декоратором, но видимо, завтра уже буду тебя распрашивать
[21:27:23] <pimiento> всем пока
[21:27:29] pimiento вышел(а) из комнаты
[21:28:49] <maksbotan> а не факт что я завтра тут буду!
[22:58:24] <LK4D4> а где это тебя носить будет?
[23:01:58] <maksbotan> а я на Children Of Bodom еду!
[23:13:02] maksbotan вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!