Сохранен 529
https://2ch.hk/pr/res/631494.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Python

 Аноним 21/01/16 Чтв 23:29:52 #1 №631494 
14534081927150.png
14534081927151.png
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Прошлый: >>626701 (OP)

2.x или 3.x: http://legacy.python.org/dev/peps/pep-0373/
Аноним 21/01/16 Чтв 23:58:10 #2 №631510 
Хоть тут с названием треда не обосрались
Аноним 22/01/16 Птн 01:36:48 #3 №631555 
Это конечно тупо, но мне спустя 2+ месяца ежидневного говнопитонинга только дошло почему в классе пишут __инит__ и что это вообще за хуйня ну и прочие __магические__ хуйни

Остальным слоупокам, если таковые кроме меня ещё тут есть рекомендую: http://www.rafekettler.com/magicmethods.html
Аноним 22/01/16 Птн 02:54:15 #4 №631584 
14534204559470.jpg
>>631555
>magic
Прямо черная магия, настолько черная что вообще охуеть.
Аноним 22/01/16 Птн 02:56:52 #5 №631586 
>>631584
Это просто название
https://en.wikipedia.org/wiki/Magic_(programming)
Аноним 22/01/16 Птн 02:58:37 #6 №631587 
>>631586
Названия тоже к месту лепить надо. Так и конструктор магией назвать можно, и ООП, и даже Аллаха.
Аноним 22/01/16 Птн 03:00:41 #7 №631588 
>>631587
>Подразумевает что конструктор, ООП и Аллах не магия
Аноним 22/01/16 Птн 03:01:42 #8 №631589 
14534209023010.jpg
>>631588
>Аллах
>магия
Аноним 22/01/16 Птн 05:57:18 #9 №631611 
14534314380980.jpg
Хочу питонировать с вами, но вместо этого только аутирую в игори и фапаю. Что делать?
Аноним 22/01/16 Птн 06:58:11 #10 №631616 
>>631611
на самом деле тебе не нравится программирование, забей.
Подумай серьезно над моими словами.

Аноним 22/01/16 Птн 07:05:29 #11 №631618 
>>631616
А что мне нравится?
Аноним 22/01/16 Птн 07:08:06 #12 №631619 
>>631618
делать бочку
Аноним 22/01/16 Птн 07:09:20 #13 №631620 
>>631619
Я уже сделал 2 раза.
sageАноним 22/01/16 Птн 07:12:12 #14 №631621 
>>631616
Я не он, но ты прав. Но щито поделать, если ничего не нравится, и надо как то зарабатывать себе на существование? В детстве в меня заложили неверные приоритеты, и теперь вместо того чтобы идти к успеху, мне милее сидение на диване как бивис и батхед, или тупое валяние дурака, как в других сортирных комедиях 90 - 00-х гг.
Аноним 22/01/16 Птн 07:15:13 #15 №631622 
>>631621
Освой рабочую специальность. Сварщик, электрик. Или там водителем стань.
Или на север езжай вахтовым методом работать.
Аноним 22/01/16 Птн 07:15:41 #16 №631623 
14534361419110.gif
>>631621
Ты - это я. С утра нагенерил идей для стартапов, весень день прокрастинировал, вечером - пикрилейтед.
sageАноним 22/01/16 Птн 07:16:51 #17 №631625 
>>631622
А это тяжело и рутинно. Кто ж захочет имея полное образование погромиста внезапно менять профу на рабочую, да притом тяжелую? Я распиздяй, но не идиот.
Аноним 22/01/16 Птн 07:18:17 #18 №631626 
>>631625
Работа быдлокодера тоже рунитта. И если кодить не нравится это вообще ад и стресс жуткий.
sageАноним 22/01/16 Птн 07:19:14 #19 №631627 
>>631626
Сидение и капчевание за компом ад и стресс? Ну ну.
Аноним 22/01/16 Птн 07:19:30 #20 №631628 
>>631622
Это не ты та местная истеричка, который боится, что ньюфаги отнимут его доширак?
Аноним 22/01/16 Птн 07:21:04 #21 №631629 
>>631627
> капчевание
хуй там. за капчевание не платят. скорее всего тебя ждет работа в потогонной конторе какой-нить где надо на потоке кучу проектов делать и на тебя пять менеджеров орет.
Аноним 22/01/16 Птн 07:22:09 #22 №631630 
14534365297820.jpg
>>631628
да, это я.
sageАноним 22/01/16 Птн 07:23:23 #23 №631631 
>>631629
Такая работа ждет нормальных кодеров. А быдлокодер только будет сидеть и капчевать 5/7. На любой работе. Я побывал на разных и везде капчевал 90% (в среднем) рабочего времени в среднем, и получал за это заслуженную минимальную зп.
Аноним 22/01/16 Птн 07:25:46 #24 №631634 
>>631631
Эникеил за опыт?
sageАноним 22/01/16 Птн 07:25:50 #25 №631635 
>>631630
Не бойся на счет нюфань. Если кто то и будет способен отнять твой дошик, это так или иначе случится. А если не плющит человека быть погромистом, то даже если на каждом столбе будут висеть объявы про бесплатные курсы "стань сеньором помидором за 2 недели", он все равно не пойдет на них.
Аноним 22/01/16 Птн 07:27:03 #26 №631636 
14534368240560.gif
>>631616
sageАноним 22/01/16 Птн 07:28:36 #27 №631638 
>>631634
И эникеил, и погромировал, но все как то через жопу. У меня есть огромная простыня с моим "рабочим опытом" тут в одном треде, если интересно, могу поискать.
Аноним 22/01/16 Птн 07:31:39 #28 №631639 
>>631635
Да я не боюсь ничего. Просто со мной в конторе брали иногда джунов полных нубов которые очень просились из жалости. Готовы были им помогать, объяснять если че. И почему-то всегда они просто сидели и тупили. Или просто втыкали в код безрезультативно или капчевали. В итоге их просто увольняли и драма была.
Аноним 22/01/16 Птн 07:33:10 #29 №631642 
>>631638
Не интересно, потому что у меня так же. Опыт какой-то есть, но для достойного резюме он не годится.

>>631635
Я где-то слышал высказывание, которое мне понравилось: стань лучшим в любой области где ты хорош. А если я люблю задумчиво вдыхать амбре своих яиц, которые не подмывал 3 дня, как в этой области стать лучшим?
sageАноним 22/01/16 Птн 07:33:49 #30 №631643 
>>631639
Все правильно делали. Рано или поздно такие отсеиваются. Если конечно у вас не гос контора, которая существует как качалка денег из бюджета, а работники в ней только для прикрытия.
Аноним 22/01/16 Птн 07:33:52 #31 №631645 
>>631631
Нет, как раз нормальный кодер может подыскать себе непыльную работенку, где позволить капчевать, а в 20% оставшегося времени быстро всё сделает.
Потогонная система во всяких веб студиях и аутсорсах там дофига проектов и везде что-то делать надо. И каждый день-два что-то надо сдавать какой-то результат. Аналогично если какой-то скрам внедрен.
sageАноним 22/01/16 Птн 07:35:35 #32 №631647 
>>631642
>не подмывал 3 дня

Это вообще ни о чем.
Аноним 22/01/16 Птн 07:36:37 #33 №631648 
>>631643
Ну а нахрен вообще мучиться если это "не твоё". И сами страдают и коллектив как бы подводят.
Можно в техподдержку пойти или там эникеем или даже админом. Или тестером.
Аноним 22/01/16 Птн 07:37:48 #34 №631649 
14534374687790.png
суки пиндосы
sageАноним 22/01/16 Птн 07:40:30 #35 №631650 
>>631645
А известно ли нормальному кодеру, что на работенках где можно капчевать и делать все по быстрому и платят копейки? Серьезно копейки. Не больше 20-30к. Нормальный кодер не пойдет на такое, ящитаю.

>>631648
Лично за себя скажу, что кодинг > админство. В детали углубляться не буду, но мне вот так легче. Ну и временами на меня все же находит желание что нибудь пописать и почитать. По работе вообще ничего не задают.
Аноним 22/01/16 Птн 07:45:45 #36 №631651 
>>631650
> на работенках где можно капчевать и делать все по быстрому и платят копейки? Серьезно копейки. Не больше 20-30к.
У меня всё наоборот. Я работа в типа веб студии и там было дохуя работы. Простой но дохуя и дергали всё время. Платили мало как раз типа 20, потом 30к.
Потом я работал в конторе, напрямую не связанной с программированием. Надо было их сайт и онлайн проект развивать. Там можно было делать мало, а платили в 2 раза больше.
Потом я работал в конторе где был один большой проект, госзаказ так скажем. Там тоже спешить особо не надо было, платили ещё больше и были ещё и перспективы роста до соточки если бы там дольше проработал.
Потом я работал над проектом где типа скрам и каждые 2 дня выкатывали новую задачу. Платили соточку но работой загружали неплохо, зато удаленно.
Аноним 22/01/16 Птн 07:50:50 #37 №631652 
>>631494 (OP)
Сап, гайз, нашел годные книжкм по full-stack python'у, как ее получить БЕСПЛАТНО, ЕВПОЧЯ?
https://gumroad.com/l/WOvyt
sageАноним 22/01/16 Птн 07:54:58 #38 №631653 
>>631651
Ты описал такие должности и уровень, до которого быдлокодерам как до китая пешком. И не надо ахуительных историй, что ты просто пришел, ничего не знал и там всему научился Надо различать ещё нормальные непыльные работенки и такие работы, где от кодера нужен только диплом из шараги. В первые не попадут распиздяи, а нормокодеры не пойдут в последние.
Предлагаю завершить нашу беседу, пока не потерли весь офтоп
Аноним 22/01/16 Птн 08:03:47 #39 №631655 
14534390274910.jpg
>>631649
Смузиблядок не палится.
Аноним 22/01/16 Птн 09:33:57 #40 №631672 
Работа для нубов есть?
Аноним 22/01/16 Птн 10:00:19 #41 №631686 
>>631672
Вилка есть?
Аноним 22/01/16 Птн 10:25:44 #42 №631707 
Еще вопрос про qt4.
Не получается привязать один метод из родительского окна к нескольким кнопкам, но находящимся в разных виджетах через
self.connect(self.button, QtCore.SIGNAL('clicked()'), parent.func)

Начинает выдавать

AttributeError: 'NoneType' object has no attribute 'func'

При привязке к одной кнопке все работает.

Разделять на несколько отдельных методов для каждого виджета не хотелось бы, ведь они делают практически одно и то же.

И туда же. Можно ли передавать аргумент методу в этих привязках?

Аноним 22/01/16 Птн 10:32:23 #43 №631710 
>>631707
А что такое parent? Объект этот существует? Почему он nonetype?
> Можно ли передавать аргумент методу в этих привязках?
Через functools.partial?
Аноним 22/01/16 Птн 10:39:34 #44 №631711 
>>631710
Parent - атрибут, содержащий ссылку на родительский виджет.
Уже разобрался. Я не передал self при создании новых окон. А аргумент parent в __init__ виджетов был None, по умолчанию.
Аноним 22/01/16 Птн 10:40:16 #45 №631712 
Сап, питонач. Я тут понял, что хоть и прогаю на питоне, но все равно его не знаю. Подскажи какой фреймворк выбрать, чтобы подтянуть скилл? ну и чтобы был востребован на рынке
Аноним 22/01/16 Птн 10:42:19 #46 №631713 
>>631711
>А аргумент parent
атрибут
быстрофикс
Аноним 22/01/16 Птн 10:43:19 #47 №631714 
>>631713
Или аргумент?
Передается же, как аргумент в __init__.
Аноним 22/01/16 Птн 10:47:02 #48 №631716 
>>631712
На рынке востребованы django и flask. Другое тоже но реже.
Аноним 22/01/16 Птн 10:55:54 #49 №631719 
>>631707
Какое же говно этот qt4.
Аноним 22/01/16 Птн 10:56:16 #50 №631720 
>>631719
С точки зрения пифон биндингов, конечно же.
Аноним 22/01/16 Птн 10:58:56 #51 №631722 
>>631716
Таки что лучше взять django или flask?
Аноним 22/01/16 Птн 10:59:52 #52 №631723 
>>631719
Чем не устраивает Tkinter?
Аноним 22/01/16 Птн 11:01:04 #53 №631725 
>>631722
Веб2пу
После него легче врубиться хоть в одно, хоть во второе
Аноним 22/01/16 Птн 11:01:47 #54 №631727 
>>631725
Кстати двачую
Аноним 22/01/16 Птн 11:02:27 #55 №631728 
>>631723
tkinter — это говно в кубе. qt5 намного лучше qt4.
Аноним 22/01/16 Птн 11:03:28 #56 №631729 
>>631720
Да я тоже ща глянул на доку мельком и вспомнил почему мне оно не нравилось. pygtk/pygi намного приятней.
Аноним 22/01/16 Птн 11:06:33 #57 №631730 
14534499935450.jpg
>>631728
Аноним 22/01/16 Птн 11:08:52 #58 №631733 
>>631710
>functools.partial

Может, лучше
lambda arg=argument: parent.startfunc(arg)?

Встречаются еще советы применить QSignalMapper, но писать с этим всем куда больше.
Аноним 22/01/16 Птн 11:10:08 #59 №631734 
пацаны, посоветуйте кокой-нибудь токой РЕСУРС по питону, чтобы мне не сидеть листать хуйню про то, как работает ебучий фор, для умственно отсталых, а чтобы сразу по конкретике поясняли за всякие более нетривиальные вещи языка.
например, как так вышло, что функция может возвращать несколько значений и как это сделать, и всё в этом духе. (может, на самом деле это тоже не менее очевидно, чем фор, но я имею в виду чтобы объяснялось что-то, чуточку более, хз, практическое что ли.) тока не говорите про документацию, охота чтоб прям пиздец сжато и тематически было.
Аноним 22/01/16 Птн 11:13:30 #60 №631736 
14534504105590.jpg
>>631734
Может ты и в школе из первого класса сразу в выпускной перешел?
Аноним 22/01/16 Птн 11:13:59 #61 №631737 
>>631725
Спасибо, анончик
Аноним 22/01/16 Птн 11:14:04 #62 №631738 
>>631734
https://learnxinyminutes.com/docs/ru-ru/python3-ru/
Аноним 22/01/16 Птн 11:15:25 #63 №631739 
>>631734
https://www.youtube.com/watch?v=N4mEzFDjqtA
Аноним 22/01/16 Птн 11:16:42 #64 №631741 
>>631734
> функция может возвращать несколько значений
Это как? Ты про генераторы?
Или про возвращение tuple? Последнее это как бы одно значение.
Аноним 22/01/16 Птн 11:17:32 #65 №631742 
>>631733
Все-таки, охуенная штука, lambda. Я только что обошел ебучий многострочный велосипед с ее помощью, похоже.
Аноним 22/01/16 Птн 11:18:19 #66 №631743 
>>631742
И вообще плохо сделали, тупа, не могли прикрутить кортеж с аргументами для слота.
Аноним 22/01/16 Птн 11:20:10 #67 №631745 
>>631743
Да, обычно в других тулкитах и прочих библиотеках где можно вешать какие-то события, такая возможность есть.
Аноним 22/01/16 Птн 11:20:38 #68 №631748 
>>631745
В GTK есть?
Аноним 22/01/16 Птн 11:20:45 #69 №631749 
>>631734
> функция может возвращать несколько значений и как это сделать
Ты про такую фигню для умственно отсталых что ли?
def zaebis_func(x):
y = x*2
z = x+2
return y,z
Аноним 22/01/16 Птн 11:21:17 #70 №631750 
>>631743
> кортеж с аргументами для слота
Чё ета?
Аноним 22/01/16 Птн 11:21:23 #71 №631751 
>>631748
Есть
Аноним 22/01/16 Птн 11:23:25 #72 №631754 
14534510057680.png
>>631748
Аноним 22/01/16 Птн 11:24:13 #73 №631755 
>>631652
Там тот же автор, что и у этого курса http://www.fullstackpython.com/
Аноним 22/01/16 Птн 11:26:13 #74 №631756 
>>631751
Охуенно. Я уже его поклонник. Следующее свое говно склепаю на нем.

>>631750
Ну чтобы вместо
self.connect(self.button, QtCore.SIGNAL('clicked()'), lambda arg=argument: parent.startfunc(arg))

цивилизованно и чисто передать аргумент в чем-то вроде

self.connect(self.button, QtCore.SIGNAL('clicked()'), parent.startfunc, (argument)

как белый человек, а не ебаный пердолик. Тем более, что слот это просто метод, и подразумевается, что он может быть простой функцией.
Аноним 22/01/16 Птн 11:30:48 #75 №631757 
>>631756
Для этого есть partial.
Аноним 22/01/16 Птн 11:31:42 #76 №631758 
>>631757
Да какая разница
Аноним 22/01/16 Птн 11:34:56 #77 №631760 
>>631758
Разница в унификации и чётком разделении функций.
в qt5:
button.clicked.connect(functools.partial(yoba, "foo", "bar", baz="baz"))
Аноним 22/01/16 Птн 11:38:00 #78 №631762 
Как называется эта хрень, когда лист, например, передается в функцию со звездочкой и распаковывается на отдельные аргументы? Хочу почитать про этот момент подробнее, но не знаю, как запрос к гуглу сформулировать.
Аноним 22/01/16 Птн 11:39:29 #79 №631764 
>>631762
*args?
Аноним 22/01/16 Птн 11:40:30 #80 №631766 
>>631762
arguments unpacking
Аноним 22/01/16 Птн 11:41:00 #81 №631768 
>>631764
>>631766
Спасибо.
Аноним 22/01/16 Птн 12:47:26 #82 №631822 
По PyCharm'у годные видеоуроки по 3-4 минуты, очень доставляют

https://www.youtube.com/watch?v=wCJ5kiSmvUY&list=PLQ176FUIyIUZ1mwB-uImQE-gmkwzjNLjP
Аноним 22/01/16 Птн 13:04:02 #83 №631837 
>>631822
О спасибо. А то нихрена не знаю сочетания клавиш там и фишки.
Аноним 22/01/16 Птн 13:07:31 #84 №631840 
>>631822
На маке то у него нормальные шрифты в pycharm
А в прыщеговне ШГ
Аноним 22/01/16 Птн 13:10:54 #85 №631843 
>>631840
Я признаться чуть в ахуе как оно у него без лагов работает.
Ясен пень у меня комп динозавр-кор2дуо2ггц-8гб и хубунта сверху, но блядь неужели дело только в компе, а не жавахуете на которой на кой-то хуй всё подряд сейчас пишут?
Аноним 22/01/16 Птн 13:15:28 #86 №631849 
>>631843
Ну у меня оно термимо тормозит(i5, 8гб ноут)
Вообще для питона ide не очень то и нужна. Разве что когда очень большой и незнакомый проект.
Аноним 22/01/16 Птн 13:19:32 #87 №631854 
>>631843
> подразумевает, что в природе существует язык/платформа быстрее джявы, кроме компилируемых в натив
Аноним 22/01/16 Птн 13:30:47 #88 №631862 
>>631854
Жава говно для педиков, уже больше 10 лет сколько раз сталкиваюсь, столько и думаю об этом. Искренне желаю ведроиду перейти целиком на пидерастичное гоу, свифт, хоть сраный обжект си
Аноним 22/01/16 Птн 13:32:21 #89 №631865 
>>631862
Эта боль скриптомартышки.
Аноним 22/01/16 Птн 13:36:19 #90 №631867 
Вообще ява эта ещё фигня. Вот эта новая мода делать ебаные текстовые редакторы на яваскрипте внутри движка браузера.. Типа brackets, atom
Аноним 22/01/16 Птн 13:37:00 #91 №631869 
>>631867
Не так давно ещё люди жаловались что емакс много оперативки жрет и целых 30 мегабайт на диске.
Аноним 22/01/16 Птн 13:43:09 #92 №631872 
в Qt4 есть аналог after из tkinter'a? Если только костыли через threading.Thread?
Аноним 22/01/16 Птн 13:44:28 #93 №631873 
>>631869
А еще запускается долго. Приходится демон держать и коннектиться через emacsclient
Аноним 22/01/16 Птн 13:46:46 #94 №631874 
>>631872
Конкретнее говоря, нужно создать виджет, и на нем отобразить данные, которые создаются от 2-30 секунд.
При этом, во время этого ожидания виджет должен быть уже создан и активен, чтобы была возможность потыкать кнопочки, например.
Аноним 22/01/16 Птн 13:52:10 #95 №631876 
class CustomWidget - допустим, у него есть метод, который при вызове запускает парсер сайта, и отобржает на виджет.

Если запускать метод из __ini__ class CustomWidget - все зависает на кучку секунд, и потом виджет создается с уже готовыми данными. Так и должно быть.

Казалось бы, нужно сначала создать виджет, и после вызвать этот метод извне.
Но вызов метода из родительского окна, после setCentralWidget(CustomWidget(self))
дает тот же эффект.
Аноним 22/01/16 Птн 14:02:30 #96 №631879 
>>631865
Чем жява отличается от пифона в этом плане? И там и там виртуальная машина.
Аноним 22/01/16 Птн 14:04:24 #97 №631881 
>>631874
QThread конечно же.
Аноним 22/01/16 Птн 14:04:26 #98 №631882 
>>631879
В java jit. Настоящий и очень продвинутый.
И она не динамическая и со строгой типизацией и прочим.
Аноним 22/01/16 Птн 14:06:33 #99 №631885 
>>631879
Программу на жабе можно определить не смотря на сорцы, просто по всратому внешнему виду, прожорливости и тормозам.
Аноним 22/01/16 Птн 14:06:35 #100 №631886 
>>631882
> она не динамическая и со строгой типизацией и прочим
Это не имеет отношения к виртуальной машине. Есть clojure, например.
Аноним 22/01/16 Птн 14:11:51 #101 №631890 
Пайтоны, помогите идиоту. Как рекурсивно переписать
def f(x, n):
return (x n)/n
Аноним 22/01/16 Птн 14:12:59 #102 №631891 
>>631890
Блджад
def f(x, n):
return (x n)/n
Аноним 22/01/16 Птн 14:16:37 #103 №631893 
>>631879
Тем, что раз в 50 быстрее

>>631885
Повторно уринировал мартыхана.
Аноним 22/01/16 Птн 14:17:26 #104 №631894 
14534614469650.jpg
Первый раз врываюсь в тред на двачах, не хуесосьте сразу.

Хочу написать ОРМ на питончике (для диплома). В общем, головой понимаю, что должно быть и как надо сделать, но целостности картины нет. Подскажите какой-нибудь гайд или книгу, где эта хуебень разбирается.
Аноним 22/01/16 Птн 14:18:47 #105 №631896 
>>631893
У тебя там фабрика по производству фабрик по производству урины? Иди сделай еще десяток, жабадаун.
Аноним 22/01/16 Птн 14:22:44 #106 №631898 
А Flask-Admin это типа генератор по бд и моделям админки типа Django? Или оно не автоматическое?
Аноним 22/01/16 Птн 14:26:19 #107 №631901 
QT не бесплатный, а я нищеброд начинающий, хочет подсветок, какой использовать ide использовать для разработки
Аноним 22/01/16 Птн 14:38:37 #108 №631911 
>>631734
Официальную документацию. Серьёзно.
Аноним 22/01/16 Птн 14:39:01 #109 №631912 
>>631901
Ебать допрограммировался.
>QT
>не бесплатный
>QT - ide с подстветками
Аноним 22/01/16 Птн 14:39:06 #110 №631913 
Что скажете насчёт Pyramid?
Аноним 22/01/16 Птн 14:41:48 #111 №631915 
>>631881
А разве в PyQt есть QtConcurrent? Более низкоуровневое я не потяну пока.
Аноним 22/01/16 Птн 14:45:18 #112 №631922 
>>631912
писать на Ninja?
qt же не бесплатный там 30 дневная подписка
помоги анончик
Аноним 22/01/16 Птн 14:45:29 #113 №631923 
>>631915
Кроме того не хотелось бы ради того, что я через threading.Thread могу сделать в одну строчку, через QTread делать чуть ли не на целый модуль.
Аноним 22/01/16 Птн 14:48:38 #114 №631924 
>>631922
Вроде Qt с 4й версии есть в open-sourse версии. Для некоммерческого использования уж точно. Смотри ниже 30-дневной коммерческой на сайте
Аноним 22/01/16 Птн 14:53:00 #115 №631929 
>>631893
> Тем, что раз в 50 быстрее
Все критичные к скорости участки пишутся на си, ващет.
Аноним 22/01/16 Птн 15:04:15 #116 №631937 
>>631929
У питоноблядей да, как раз по той причине, что я написал выше
Аноним 22/01/16 Птн 15:07:54 #117 №631940 
14534644748460.jpg
Проигрываю с этой бомбящей жабы. Дегенерат с ПХП и шаред хостингом сменился на жабанетормозит.
Аноним 22/01/16 Птн 15:09:44 #118 №631944 
>>631940
>пок-пок боевая картинка
Кек.
https://benchmarksgame.alioth.debian.org/u64q/java.html
https://benchmarksgame.alioth.debian.org/u64q/python.html
Аноним 22/01/16 Птн 15:10:27 #119 №631946 
>>631923
> я не потяну пока
Пока.
> целый модуль
Один класс в десять строчек.
Аноним 22/01/16 Птн 15:11:21 #120 №631948 
>>631944
>пок-пок синтетические бенчмарки
А теперь сходи и посмотри как пишут жавагоспода в реальности
Аноним 22/01/16 Птн 15:11:30 #121 №631949 
>>631937
Ну, это цена за динамичность и выразительность. Не бывает серебрянной пули.
Аноним 22/01/16 Птн 16:35:34 #122 №632044 
>>631876
Блокируешь же гуи тред. Тебе надо создать этот виджет изначально пустым, потом через сигналы и слоты собственно отправлять/получать данные из отдельного треда и уже заполнять свой виджет.
Аноним 22/01/16 Птн 16:55:41 #123 №632074 
>>631894
Problem Solving with Algorithms and Data Structures
Не гарантирую что то что ты ищешь гарантированно в этой книге(не читал ещё), но полистай, её очень хвалят да и по смыслу вроде подходит

En http://interactivepython.org/courselib/static/pythonds/index.html
Ru http://aliev.me/runestone/
Аноним 22/01/16 Птн 18:27:25 #124 №632149 
>>632074
Счастья тебе.
Аноним 22/01/16 Птн 19:58:20 #125 №632234 
>>631555
Ну а по-русски объясни тогда? В чем фишка "меджика"?
sageАноним 22/01/16 Птн 20:18:33 #126 №632251 
>>632234
хуйта, реализующая у себя в интерфейсе меджики, ведет себя подобно встроенным типам как перегрузка операторов в крестах, только шире
Аноним 22/01/16 Птн 20:26:10 #127 №632258 
>>631894
Тебе надо реализовать какой-нить паттерн типа
https://en.wikipedia.org/wiki/Active_record_pattern
https://en.wikipedia.org/wiki/Data_mapper_pattern
Аноним 22/01/16 Птн 20:27:19 #128 №632259 
>>631894
Вообще оче интересная задача. Я когда-то фор фан написал пару орм.
Аноним 22/01/16 Птн 20:31:41 #129 №632265 
>>631924
qt для опенсоурс проектов всегда был бесплатный.
Аноним 22/01/16 Птн 20:33:02 #130 №632267 
>>631948
В реальности на java пишут очень сложные гиганстские проекты которые на чем угодно будет тормозить.
В том же pycharm куча анализаторов кода, эвристик всяких. Если их отключить - всё будет летать.
Аноним 22/01/16 Птн 20:42:44 #131 №632275 
>>631725
Но там же второй питон. Что есть под третий?
Аноним 22/01/16 Птн 20:49:39 #132 №632284 
Как отличить второй питон от третьего?
Аноним 22/01/16 Птн 20:54:06 #133 №632290 
>>632284
По номеру
Аноним 22/01/16 Птн 20:55:44 #134 №632292 
>>632275
Боттл
Аноним 22/01/16 Птн 21:29:01 #135 №632315 
>>632284
По print()
Аноним 22/01/16 Птн 22:02:57 #136 №632353 
>>632267
>Если их отключить - всё будет летать.
Тогда и пайчарм нахуй не нужен
Аноним 22/01/16 Птн 22:05:14 #137 №632360 
14534895146900.png
>>632353
Эт да))
Аноним 22/01/16 Птн 22:22:47 #138 №632389 
http://www.labirint.ru/books/311244/ норм или нет?
Аноним 22/01/16 Птн 23:05:59 #139 №632455 
Питоны, а как вы относитесь к DI? Заметил что многим похую DI они во всю используют monkey patching. Приятно конечно сосредоточится на написании кода а не на хуймиллионе фабрик/инъекторов, но как дела с тестированием?
[сорта говна] Аноним 22/01/16 Птн 23:09:00 #140 №632459 
>>632455
>monkey patching.
Динамика, сэр. Можно все замочить в рантайме.
Аноним 22/01/16 Птн 23:09:18 #141 №632460 
>>632455
шо це таке
Аноним 23/01/16 Суб 00:31:11 #142 №632506 
>>632455
Dependency Injection не имеет смысла в питоне.
Точнее, не имеет смысла выделять это как какую-то особую технику. Динамика же + условные импорты, например, что ещё тебе надо?
Аноним 23/01/16 Суб 00:33:01 #143 №632508 
>>632389
Для самого начала норм. Лучше, правда pdf навернуть. Бумажный вариант неудобный, бумага говно и столько денег не стоит.
Аноним 23/01/16 Суб 01:01:18 #144 №632519 
>>632455
>DI
>monkey patching
Чёт ты перепутал тёплое с твёрдым. DI это прежде всего отказ от инстанцирования зависимостей внутри класса. Зависимости просто приходят в конструктор, тем самым позволяя легко их подменять, в том числе на мок-объекты для тестов.

Манки патчинг, несмотря на негативное восприятие большинством этого термина, не является чем-то особенно плохим. Конечно строить ОРХЕТЕКТУРЫ на нём нельзя, но пофиксить какую-нибудь библиотеку изредка таки можно.
Аноним 23/01/16 Суб 02:19:12 #145 №632536 
>>632519
Пишем без DI, в тесте мокируем зависимость манки-патчингом, profit - DI вроде как и не нужен. В этом смысле.
Аноним 23/01/16 Суб 02:36:59 #146 №632540 
>>632508
Я больше не для себя даже, а сколько для мамы. Что-то фундаментальное на 1000-2000 страниц ей точно не подошло бы. Хотя думал и сам прочесть, так как недавно щупал питон и мне он понравился.
Аноним 23/01/16 Суб 03:11:18 #147 №632542 
Пацаны, как отсортировать даты в таком виде?
6 Jan @ 4:03pm
8 Jan @ 2:17pm
9 Dec @ 4:00am
9 Dec @ 5:14pm
9 Dec @ 5:28am
10 Jan @ 2:55pm
10 Jan @ 4:21am
10 Jan @ 7:14pm
12 Dec @ 7:48pm
12 Dec @ 7:50pm
12 Jan @ 3:32pm
13 Dec @ 3:43pm
13 Dec @ 5:02am
13 Dec @ 5:24am
14 Jan @ 5:17pm
15 Jan @ 5:29am
21 Dec @ 3:56pm
21 Dec @ 9:40am
Аноним 23/01/16 Суб 03:31:19 #148 №632544 
>>632542
В каком виде у тебя даты? datetime?
Аноним 23/01/16 Суб 03:47:01 #149 №632546 
>>632544
Это именно текст. Парсю сайт.
Аноним 23/01/16 Суб 03:49:54 #150 №632547 
>>632546
Ты ты их перегоди в даты, отсортируй и потом можешь обратно в текст перегнать если надо.
Аноним 23/01/16 Суб 05:50:32 #151 №632561 
>>632542
https://ideone.com/3J0NJx
мимоговнокодер
Аноним 23/01/16 Суб 05:55:53 #152 №632562 
>>632508
А есть какой-то ликбез-подборка в формате киндлоблядей? Пдф без текста в исходнике читать невозможно.
Аноним 23/01/16 Суб 09:43:02 #153 №632602 
>>632561
немного улучшил твой код
https://ideone.com/0J9rdk

мимо питонер с двухлетним стажем
Аноним 23/01/16 Суб 11:48:31 #154 №632658 
14535389120710.jpg
Неделю ебал вола пытаясь понять как работает ебучая Джанго, нихуя не врубался, злился и считал себя аутистом.
Поставил фласк и буквально спустя 3 минуты первого попавшегося туториала врубился как оно всё в нём работает и тд.
Жаль что для фласка нет автогенерируемой админки из коробки и прелестей автоматического "ну а в бд-из бд оно как-нибудь само", но это мелочи на фоне того что блядь всё остальное ОЧЕНЬ ПРОСТО
Аноним 23/01/16 Суб 12:13:21 #155 №632677 
>>632658
А что с джангой сложно?
Аноним 23/01/16 Суб 12:14:15 #156 №632678 
>>632536
Нигде такого не видел.
Аноним 23/01/16 Суб 12:21:34 #157 №632682 
>>632677
Да может и ничего, но "с наскока" зайти не удалось, а читать на иноземной мове 2 scoops of django мне было очень лень, при чём мову-то я на болтательном уровне знаю, но забивать голову и переводами, и самой джангой выше моих сил.
А тут пиздык-пиздык вьюз.пу всем рулит и педалит безо всякого говна, хочешь - модели припиздячьивай, хочешь - хуй забей, вариантов масса
и да я разумеется понимаю что это не только самый большой плюс, но и самый большой минус
Аноним 23/01/16 Суб 12:22:41 #158 №632683 
>>632682
>при чём мову-то я на болтательном уровне знаю, но забивать голову и переводами, и самой джангой выше моих сил.
Опять охуительные истории.
Аноним 23/01/16 Суб 12:24:10 #159 №632684 
>>632683
У тебя такого не бывает? Тебе похуй на каком языке читать, оба нагружают башню одинаково? Молодец, хули, завидую тебе!
Аноним 23/01/16 Суб 12:26:17 #160 №632687 
>>632682
Собстивенно в django тебе тоже только urls.py и views.py нужны, остальное не обязательно. Да и вьюхи ты можешь в самом urls.py задать если очень хочется, тогда и views.py не нужен.
Аноним 23/01/16 Суб 12:27:10 #161 №632689 
>>632684
Мне проще на английском техническую хуйню читать. Потому что при переводе надмозги часто неправильно переводят и гадаешь что там в оригинале имелось ввиду.
Аноним 23/01/16 Суб 12:32:34 #162 №632691 
14535415545580.jpg
>>632683
>>632682
Платиновые отмазки знающих мову, по две рандомных отмазки на тред:

Мову то я знаю, но на родном читать приятней
Мову то я знаю, но боюсь ошибиться в терминах
Мову то я знаю, но боюсь неправильно понять
Мову то я знаю, но лень переучивать термины
Мову то я знаю, но я патриот и читаю только на русском
Мову то я знаю, но я уже начал на русском и будет путаница
Мову то я знаю, но учить питон и доучивать мовву одновременно - сложно
Мову то я знаю, но я устал
Мову то я знаю, но не хочу забивать голову
Мову то я знаю, но мне лень напрягать башню
Мову то я знаю, но ...
Аноним 23/01/16 Суб 12:35:12 #163 №632692 
>>632687
Может и так, но в совокупности оно всё равно ебануто получается.
Всё джанго держится на каких-нибудь тайных атрибутах классов, из которых построено, и в итоге тебе постоянно надо лепить хуйню типа "хочешь в админке картинки к ImageField? - ПРОСТО БЕЗ ЗАДНЕЙ МЫСЛИ ДОПИШИ ВОЛШЕБНУЮ ПЕРЕМЕННУЮ ImageField.listview= True В КЛАСС и всё нахуй чудом станет как и задумывалось.
А хоть где брать список волшебных переменных инб4 сорцы - хуй знает.

>>632691
Блядь, ну очевидно же что ни по питону, ни по фреймворкам инфы на русском недостаточно и один хуй приходится читать на мове. Анальную клоунаду разводить тут удумал, ишь какой.
Аноним 23/01/16 Суб 12:36:53 #164 №632693 
>>632692
Ничего волшебного там нет и всё описано в документации.
Аноним 23/01/16 Суб 12:40:47 #165 №632695 
>>632693
Энивей, я свято и не безосновательно (вкатился же) верю что во Фласк вкатиться проще чем в Джангу.
Скорее всего Фласком я не ограничусь, и спустя какое-то время снова попоробую ворваться и в Джангу тоже, но пока мне и фласка "за глаза".
Аноним 23/01/16 Суб 12:53:04 #166 №632696 
>>632695
А какую ты orm использовать будешь? Потому что обычно берут алхимию а она сильно сложнее джанговской.
Формы? wtforms какие-нить? Там магии хватает тоже.
Аноним 23/01/16 Суб 13:50:26 #167 №632711 
Срезы возвращают поверхностную копию или глубокую?
Аноним 23/01/16 Суб 13:52:03 #168 №632712 
>>632711
поверхностную.
Аноним 23/01/16 Суб 13:52:58 #169 №632714 
>>632712
Благодарю.
Аноним 23/01/16 Суб 14:47:05 #170 №632730 
С какой версии питона лучше начать изучение - 2 или 3?
Аноним 23/01/16 Суб 14:47:44 #171 №632731 
>>632730
В ОП-посте специально ссылка есть.
Аноним 23/01/16 Суб 14:50:44 #172 №632733 
>>632730
2
Аноним 23/01/16 Суб 14:52:29 #173 №632734 
>>632733
Через четыре года до него дойдет.
Аноним 23/01/16 Суб 14:53:51 #174 №632736 
>>632730
https://wiki.python.org/moin/Python2orPython3
Аноним 23/01/16 Суб 15:01:30 #175 №632738 
>>632731
>>632733
>>632734
>>632736
Премного благодарен видимо гуглить пора бы учиться по аглицки
Аноним 23/01/16 Суб 15:21:52 #176 №632750 
>>632731
А как эта ссылка помогает сделать выбор? Разве что...
> Possible features for 2.7
> Nothing here. [Note that a moratorium on core language changes is in effect.]
Аноним 23/01/16 Суб 15:22:32 #177 №632751 
>>632750
Стабильность
Аноним 23/01/16 Суб 15:28:47 #178 №632756 
>>632750
>The End Of Life date (EOL, sunset date) for Python 2.7 has been moved five years into the future, to 2020.
>Being the last of the 2.x series, 2.7 will have an extended period of maintenance. The current plan is to support it for at least 10 years from the initial 2.7 release. This means there will be bugfix releases until 2020.
Аноним 23/01/16 Суб 15:29:27 #179 №632757 
>>632602
немного улучшил твой код
https://ideone.com/qnaAaJ

пифонер с пятилетним стажем
Аноним 23/01/16 Суб 15:37:40 #180 №632765 
Бля уважаю пайтонистов
Нет, я не нажрался, просто захотелось сказать.
Аноним 23/01/16 Суб 15:53:20 #181 №632777 
>>632765
Прими таблетки.
Аноним 23/01/16 Суб 16:12:15 #182 №632786 
>>632777
Принял, что дальше?
Аноним 23/01/16 Суб 16:19:48 #183 №632790 
>>632786
Жди прихода.
Аноним 23/01/16 Суб 16:23:48 #184 №632793 
Вопрос по qt4.

self.connect(self.button, QtCore.SIGNAL('clicked()'), partial(self.func, self.arg)

Я так понимаю, значение self.arg берется в момент создания привязки и больше не меняется?
Как исхитриться и брать актуальное значение, ведь self.arg меняется?
Аноним 23/01/16 Суб 16:27:35 #185 №632794 
>>632793
> Я так понимаю, значение self.arg берется в момент создания привязки и больше не меняется?
Да
> Как исхитриться и брать актуальное значение, ведь self.arg меняется?
Передавать туда self, а уже внутри self.func читать self.arg. А учитывая, что это self.func там self уже есть, так что partial не нужен
Аноним 23/01/16 Суб 18:04:12 #186 №632878 
>>632757
Ты охуенен. Можешь посоветовать что почитать, чтобы понять, как работает то, что ты написал?
Аноним 23/01/16 Суб 18:42:10 #187 №632912 
Чот я проебался с наследованием моделей в джанге. Понадобилась мне еще одна модель, которая от имеющейся отличается наличием дополнительного поля. Наследовался, зарегал в админке, проверил - сохраняет все корректно. А потом гляжу, а у меня вьюха отображает обе модели в списке. Лезу в базу, а там унаследованная модель сохранилась, как табличка с FK на id родительской + новое поле. Как заставить джангу сохранять новую модель в отдельную таблицу?
Аноним 23/01/16 Суб 19:06:23 #188 №632935 
>>632878
Документацию к питону читай. Там все это есть.
Аноним 23/01/16 Суб 19:12:23 #189 №632938 
>>632757
Лучше же generator expression использовать вместо мапа т.к. мап медленнее с лямбдой.

мимо пифонер без стажа
Аноним 23/01/16 Суб 19:15:36 #190 №632939 
>>632912
Все, посоны, разобрался. Сделал абстрактную модель, куда запихал все общие поля и методы, и унаследовался дважды от неё.
Аноним 23/01/16 Суб 19:29:37 #191 №632952 
Аноны, python 3.5.0, че за хуйня?
>>> range(1,3)
range(1, 3)
>>>
Аноним 23/01/16 Суб 19:32:53 #192 №632959 
>>632952
Цэ итерируемый объект.
Аноним 23/01/16 Суб 19:35:48 #193 №632962 
>>632952
list(range(1, 3))
Аноним 23/01/16 Суб 19:36:48 #194 №632964 
>>632959
>>> print(range(1,4))
range(1, 4)
>>>
как сам список-то получить.
Аноним 23/01/16 Суб 19:37:18 #195 №632965 
>>632964
>>632962
Аноним 23/01/16 Суб 19:37:21 #196 №632966 
>>632962
спс
Аноним 23/01/16 Суб 22:10:15 #197 №633036 
>>631898
Да, что-то вроде этого, 'автоматическое'
Аноним 23/01/16 Суб 22:14:48 #198 №633038 
>>631913
А что интересует? Хороший фреймворк (точнее клей для будущего фреймворка%)), если под веб не писал,то лучше начать с чего-то более простого. Для меня пирамида 2й фреймворк после django (иногда надо что-то с нормальным ормом)
Аноним 23/01/16 Суб 23:39:16 #199 №633100 
>>632938
Люблю map, не люблю list/generator/dict comprehensions.
> медленнее
Преждевременный оптимизатор?
Аноним 23/01/16 Суб 23:41:08 #200 №633102 
>>632939
> унаследовался дважды
Какой ненасытный гардемарин.
Аноним 23/01/16 Суб 23:45:32 #201 №633103 
>>633102
Если есть более рациональное решение - скажи, я непременно им воспользуюсь.
Аноним 23/01/16 Суб 23:53:33 #202 №633108 
>>633100
>Преждевременный оптимизатор?
не ИДИОМАТИЧНО

ну и да, тормозит, переписывал подобную хуйню по результатам из профайлера, лучше уж сразу как человек писать
Аноним 24/01/16 Вск 00:19:32 #203 №633129 
>>633108
define "как человек"
Если у тебя производительность упирается в это, то переписывание не поможет.
Аноним 24/01/16 Вск 00:44:53 #204 №633138 
>>633129
>то переписывание не поможет
Негодный экстрасенс
>define "как человек"
не порождать ненужные промежуточные листы, как у тебя делают мап и фильтер. оно раза 2 тормознее, и в несколько раз прожорливее по памяти. на тысяче-другой элементов в коллекции ты прозреешь

открой для себя comprehensions и модуль itertools
Аноним 24/01/16 Вск 00:51:27 #205 №633142 
>>633129
и да, это алгоритмика, а не прематур чего-то там
Аноним 24/01/16 Вск 02:22:04 #206 №633166 
>>633138
> Негодный экстрасенс
> не порождать ненужные промежуточные листы, как у тебя делают мап и фильтер. оно раза 2 тормознее, и в несколько раз прожорливее по памяти. на тысяче-другой элементов в коллекции ты прозреешь
ИКСПЕРТ подтянулся
https://docs.python.org/3/library/functions.html?highlight=filter#filter
https://docs.python.org/3/library/functions.html?highlight=map#map
>>633142
> прематур
define "прематур"
Аноним 24/01/16 Вск 02:49:47 #207 №633172 
>>633138
>не порождать ненужные промежуточные листы
>открой для себя comprehensions
/0
Аноним 24/01/16 Вск 02:50:40 #208 №633173 
>>633166
>ИКСПЕРТ
>https://docs.python.org/3
Я про двойку, Py3k не особенно где есть.
Аноним 24/01/16 Вск 02:51:25 #209 №633174 
>>633172
>/0
Выражение-генератор чем не оно?
Аноним 24/01/16 Вск 02:55:17 #210 №633176 
>>633100
https://ideone.com/VlIeSg
На 10% быстрее твоей портянки, при равных данных на входе, чому так?
Аноним 24/01/16 Вск 03:01:39 #211 №633177 
>>633166
третьепитонопроблемы
3-шка нестабильное эксперементальное говно. нечетные версии нестабильные.
нормальные люди сидят на двойке, перекатятся когда выйдет стабильная 4.0
Аноним 24/01/16 Вск 03:03:28 #212 №633178 
>>633176
> sorted((
здесь не нужно две пары скобок можно просто sort(foo for foo in bar)

А вообще пиздец ты оптимизатор. распрасить 10 дат на 10% быстрее!!! выигрыш 0.00000000000000000000001 секунды!
Аноним 24/01/16 Вск 03:05:41 #213 №633179 
>>633176
При этом читаемость кода хуже. Даже блять в длину строки гитхаба не влезает.
> s.split("\n")
есть str.splitlines() на разных системах перенос строки по-разному делается
Аноним 24/01/16 Вск 03:06:10 #214 №633180 
>>633178
А бля там key= ещё не долгядел
Аноним 24/01/16 Вск 03:06:42 #215 №633181 
>>633173
> в ссылке на ideone 3-я версия
> Я про двойку
nuff said.
> Py3k не особенно где есть
Лолд, уябывай, клоун.
>>633176
Потому что ты не делаешь stftime, наверное. что за дибилы в треде, ведь так всё было хорошо сначала
Аноним 24/01/16 Вск 03:08:55 #216 №633182 
>>633179
> есть str.splitlines()
Вот это годно.
Аноним 24/01/16 Вск 03:10:28 #217 №633183 
>>633181
а нахуй ты, дебил, гоняешь строку в дату а потом обратно с тем же форматом?
Аноним 24/01/16 Вск 03:13:54 #218 №633184 
>>633178
10 дат можно и руками отсортировать, оно явно не для этого писалось.
Аноним 24/01/16 Вск 03:14:33 #219 №633186 
>>633183
Очевидно, что для вывода. Автору надо было распарсить. >>632542
Аноним 24/01/16 Вск 03:16:15 #220 №633187 
>>633184
Это парсер сайта, дибил. Там их десять/сто и будет. Парсеры затем и нужны, чтобы руками ничего не делать.
Аноним 24/01/16 Вск 03:16:39 #221 №633188 
>>633186
>Очевидно, что для вывода
>>632542
>отсортировать

Чет ты совсем аутист, сочувствую твоим каллекам
Аноним 24/01/16 Вск 03:17:14 #222 №633189 
>>633187
Жопу ставишь что пару тысяч не будет?
Аноним 24/01/16 Вск 03:18:21 #223 №633190 
>>633188
Ему нужно было распарсить и сортировать. strftime только для вывода на ideone. К словам придираешься, ибо обосрался?
Аноним 24/01/16 Вск 03:18:49 #224 №633191 
>>633189
Да хоть 10000. ты какой-то дибил
Аноним 24/01/16 Вск 03:19:45 #225 №633193 
>>633191
Да, десятки секунд разницы - похуй, говнякай дальше.
Аноним 24/01/16 Вск 03:20:56 #226 №633194 
>>633190
>strftime только для вывода на ideone
ага, без двойной конвертации не обойтись, ну-ну
Аноним 24/01/16 Вск 03:22:03 #227 №633195 
>>633193
Бля, ты тупой? Быстрее лишь засчёт того, что у тебя нет strftime.
>>633194
Толстячок.
Аноним 24/01/16 Вск 03:22:27 #228 №633196 
>>633193
Какие десятки секунд? Ты ебанутый?
Да даже если были бы десятки секунд - похуй на них, читабельный код важнее.
Иди на асме пиши.
Аноним 24/01/16 Вск 03:26:09 #229 №633198 
>>633195
Ну на двойке оно у тебя бы еще 2 промежуточных листа высерало, а так то норм.
Аноним 24/01/16 Вск 03:27:57 #230 №633200 
>>633196
define читабельный

в моем `key=` на новую строчку перенести, и будет заебцом, как в лучших домах
Аноним 24/01/16 Вск 03:28:12 #231 №633201 
>>633198
> Ну на двойке
Давай, до свидания.
Аноним 24/01/16 Вск 05:40:14 #232 №633216 
Проводил сегондя собеседование - пришел какой-то чудик, который в тестовом задании вместо unicode() испольщовал str() и вместо xrange написал range. Сказал ему что перезвоним.
Аноним 24/01/16 Вск 08:23:51 #233 №633227 
Tак в drf запросить только первый/последний элемент? Сделать свой get_queryset(), который, если в запросе есть нужный параметр, будет возвращать только один элемент?
Аноним 24/01/16 Вск 10:48:04 #234 №633247 
>>633216
Эти двойкодебилы. Чуваку повезло, короче.
Аноним 24/01/16 Вск 18:04:29 #235 №633502 
>>633216
Сука, только попробуй не перезвонить.
Аноним 24/01/16 Вск 18:07:52 #236 №633504 
14536480730810.jpg
>>631494 (OP)
Как через пайтон запустить другую консольную программу в фоне, используя готовые ассоциации Винды, при этом получив на выходе stdout?
Пробую так, но оно, почему-то, выдает лишь пустую байтовую последовательность, хотя вывод должен быть:
script = subprocess.Popen('cmd /c start "" /b' + path, stdin=sub.PIPE, stdout=sub.PIPE, stderr=sub.PIPE, env=envp, cwd=os.getcwd())
output = script.stdout.read()
Аноним 24/01/16 Вск 18:10:53 #237 №633506 
>>633174
Тем что оно не считается comprehensions, ну или я нигде не видел чтобы кто-то упоминал его так.
Аноним 24/01/16 Вск 18:17:26 #238 №633508 
>>633504
> в фоне
> получив stdout
Это и на прыщах то через жопу целается - надо будет её stdout в неблокирующем режиме в цикле читать типа http://stackoverflow.com/questions/8980050/persistent-python-subprocess
Аноним 24/01/16 Вск 18:19:31 #239 №633510 
>>633506
https://www.python.org/dev/peps/pep-0289/
>This PEP introduces generator expressions as a high performance, memory efficient generalization of list comprehensions
>generalization of list comprehensions
>comprehensions

Хотя это и без пруфов очевидно неупоротым
Аноним 24/01/16 Вск 18:21:34 #240 №633512 
>>633506
Таки comprehensions. Каюсь.
Аноним 24/01/16 Вск 18:27:53 #241 №633516 
14536492736510.png
Помогите ньюфагу, почему выскакивает ошибка с пика?
Аноним 24/01/16 Вск 18:29:48 #242 №633517 
>>633516
NO должно быть в кавычках
Аноним 24/01/16 Вск 18:30:43 #243 №633518 
>>633517
Спасибо, надо же забыть такую элементарную вещь
Аноним 24/01/16 Вск 19:34:17 #244 №633555 
>>633516
Что будет с этими людьми если их за изучение жс посадить с его ошибками вида undefined is undefined.
Аноним 24/01/16 Вск 19:57:54 #245 №633572 
>>632267
>В реальности на java пишут очень сложные гиганстские проекты которые на чем угодно будет тормозить.
Это ты про майнкрафт?
Аноним 24/01/16 Вск 20:51:05 #246 №633587 
14536578656100.png
Нужно найти минимум из трех чисел, как сделать это для отрицательных?
Аноним 24/01/16 Вск 20:53:08 #247 №633588 
>>633587
чо эт за сайт?
Аноним 24/01/16 Вск 20:54:28 #248 №633589 
>>633588
Питонтутор
Аноним 24/01/16 Вск 20:56:20 #249 №633590 
>>633587
-5 же правильный ответ. Чего ему не нравится?
Аноним 24/01/16 Вск 20:58:23 #250 №633592 
>>633590
У меня -3 получается
Аноним 24/01/16 Вск 20:59:02 #251 №633593 
>>633587
abs(int(input()))
хехехе
Аноним 24/01/16 Вск 21:00:05 #252 №633595 
>>633593
Ну ты чего, что не так, я только первый день занимаюсь
Аноним 24/01/16 Вск 21:00:06 #253 №633596 
>>633593
Я наркоман, не обращайте внимания.
Аноним 24/01/16 Вск 21:04:05 #254 №633599 
if a <= b and a <= c:
print(a)
elif b <= a and b <= c:
print(b)
esle:
print(c)
Так, не?
Аноним 24/01/16 Вск 21:05:42 #255 №633605 
>>633587
Замени свои конструкции a<b<c на:
a < b and a < c
b <= a and b < c
например
Аноним 24/01/16 Вск 21:06:15 #256 №633606 
>>633587
Там решение под выхлоп подогнать надо что ли? Если да, то бросай нахуй это говно. Если нет, то ты неправильно понял задание.
Аноним 24/01/16 Вск 21:06:16 #257 №633607 
>>633599
Отступы проебались.
Аноним 24/01/16 Вск 21:07:00 #258 №633608 
>>633606
Да, под выхлоп, но зачем бросать?
Аноним 24/01/16 Вск 21:08:51 #259 №633609 
>>633605
Спасибо
Аноним 24/01/16 Вск 23:14:25 #260 №633641 
14536664659490.jpg
Парни, а поясните мне простым языком:
В питоне всё объекты. Всё ли? Ну т.е. во 2м print был не объектом, в третьем - стал.
Для любого объекта грубо говоря мы можем дописывать свои свойства, через функции. Ну типа def str_add_shit(str): return str + 'shit'.
Так типа, или я что-то упускаю?
Классы это такой способ навязать кучу свойств куче объектов
Все эти self.{имяфункции} это и есть спсоб декларации того, что у объектов такого класса по имяфункции теперь есть одноимённое свойство.
Аноним 24/01/16 Вск 23:35:45 #261 №633653 
>>633641
Ебать у тебя каша в голове.
print в 2 питоне - инструкция. Как return, например.
А вообще, хули я тебе объясняю что-то. Пиздуй читать Лутца.
Аноним 25/01/16 Пнд 00:05:29 #262 №633669 
14536695294520.jpg
>>633653
Благодарю за отличный развёрнутый ответ, вкусняшек тебе!
Аноним 25/01/16 Пнд 00:30:28 #263 №633675 
>>633608
Потому что это бессмысленно, если только ты не будешь заниматься реверс-инжинирингом, но даже в этом случае эти "задачи" далеки от реальности . С таким же успехом ты можешь на бумажке написать 5 рандомных цифр, а потом пытаться найти в них закономерность. Лучше с checkio какого-нибудь задачек порешай.
Аноним 25/01/16 Пнд 07:00:42 #264 №633789 
Сука, нихуя я не понимаю.

Вот есть у меня связь в Джанге много к 1. Есть пост, к нему идут комменты. Сука, как мне запросить количество коментов к этому посту без создания кастомного фильтра для шаблона?
Ну, т.е. чтобы это все во вьюхе работало, и через запрос в эту вьюху и выводилось количество комментов. Вчера полдня убил, так нихера и не смог сделать.
Аноним 25/01/16 Пнд 07:22:36 #265 №633798 
>>633789
Ты имеешь ввиду а шаблоне чтобы работало?
Ты можешь писать там как-то {{ post.comment_set.count }} так
Аноним 25/01/16 Пнд 07:23:25 #266 №633799 
>>633798
p.s. count это функция, но движок шаблонов "умный" - если это функция он сам её вызовет
Аноним 25/01/16 Пнд 11:03:26 #267 №633899 
антоны-питонобоги, вопрос к вам
создал свой класс, как мне переопределить операцию умножения вида: инт экземпляр класса ?
пример:
>>> class SupAnton:
def __init__(self, data):
self.value = data
def __mul__(self, repVal):
return SupAnton(self.value
repVal)
>>> sA = SupAnton(228)
>>> (sA 410).value #выводит результат
>>> (410 sA).value #ошибка. как переопределить метод для такого вида?
Аноним 25/01/16 Пнд 11:05:40 #268 №633901 
14537091410690.png
>>633899
Аноним 25/01/16 Пнд 11:06:29 #269 №633904 
>>633899
немного с табами ошибся
Аноним 25/01/16 Пнд 11:08:22 #270 №633906 
>>633901
спасибо
приставка r - reverse, как я понял. да?
Аноним 25/01/16 Пнд 11:09:45 #271 №633908 
>>633906
В доке:
These methods are called to implement the binary arithmetic operations (+, -.....) with reflected (swapped) operands.
Аноним 25/01/16 Пнд 11:11:03 #272 №633912 
>>633906
Ещё есть imul для переопределения
x*=3
Аноним 25/01/16 Пнд 15:31:40 #273 №634050 
Собсно, есть пустой класс который я вставляю в лист для отображения пустого поля. Как его назвать? Spacer? Filler? Placeholder?
Аноним 25/01/16 Пнд 15:32:58 #274 №634051 
>>634050
None
Аноним 25/01/16 Пнд 15:38:33 #275 №634054 
>>634051
None как базовый тип там уже есть, поэтому нужен класс.
Аноним 25/01/16 Пнд 15:40:33 #276 №634055 
>>634054
Я к тому что может тебе None вставлять в список вместо этого класса. Хотя я незнаю, что ты именно делать. Может и нет.
А так называй как хочешь. Placeholder звучит подходяще.
Аноним 25/01/16 Пнд 17:42:24 #277 №634125 
>>634050
AnoosHolder
Аноним 25/01/16 Пнд 18:43:50 #278 №634180 
Пацаны. Начал тут обмазываться питоном сразу по хардкору по AByteofPython. Т.к. начал я это делать в дороге, то читал я на планшете, параллельно запуская скрипты в QPython3.

И вот тут на ранних примерах нашёл один листинг:

http://ideone.com/ihWTOs

Так вот, собственно, в чём вопрос. В книге пишут, что если документировать объявленную функцию, при запросе function.__doc__ выдаст эту самую документацию, но, как видите, что в ideone, что в QPython3 вместо этого мне пишут хуй None.

На домашней же ПеКе пашет как надо. Почему вообще возникает такой глюк с документацией? Что еще ждать в таком же духе от Ideone?
Аноним 25/01/16 Пнд 18:56:34 #279 №634195 
14537373948910.png
14537373948911.png
>>634180
Попробовал вот тут:
http://live.sympy.org/
и тут
http://www.brython.info/tests/console.html?lang=en
Пашет как надо
Какая-то особенность ideone
Аноним 25/01/16 Пнд 19:28:40 #280 №634226 
>>634195
https://dpaste.de/xem2
Вангую, что у них там сорт оф eval/exec для которого они фильтруют входящий текст от мусора, в т.ч. докстрингов.
Аноним 25/01/16 Пнд 19:30:54 #281 №634229 
>>634226
У интерпретатора питона есть такая опция
> -OO : remove doc-strings in addition to the -O optimizations
Аноним 25/01/16 Пнд 20:38:27 #282 №634302 
Django. Имееются две модели. Никаких foreign key, правда в одной из этих таблиц имееются ключи, указывающие на primary key'и второй таблицы. Как в сериалайзере добавить в первую таблицу филды из второй, по какому-то id-шнику?
Аноним 25/01/16 Пнд 20:46:25 #283 №634309 
>>634302
> Никаких foreign key, правда в одной из этих таблиц имееются ключи, указывающие на primary key'и второй таблицы
А зачем так? Почему не сделать foreign key?
> какому-то id-шнику
Что это значит?
Аноним 25/01/16 Пнд 21:03:41 #284 №634325 
>>634309
Просто этот ключ может содержать id и из другой таблицы.
> какому-то id-шнику
Это значит, что в первой таблице есть id, которые иногда ссылаются на другую таблицу, и есть поля, которые нужно заполнить, взяв их из второй таблицы. Вот как это сделать по-человечески. Foreign key не подходит в данном конкретном случае.
Аноним 25/01/16 Пнд 21:11:23 #285 №634331 
>>634325
Для этого есть https://docs.djangoproject.com/en/1.9/ref/contrib/contenttypes/#generic-relations
Аноним 25/01/16 Пнд 21:23:45 #286 №634340 
>>634331
О, спасибо, анон. Действительно, полезный линк
Аноним 25/01/16 Пнд 21:30:14 #287 №634346 
>>634340
Если бы этого не было встроено в саму джанго, то модно было бы реализовать самому.
Или вот немного из другой оперы, есть https://pypi.python.org/pypi/eav-django http://mvpdev.github.io/django-eav/ позволяет иметь произвольный набор аттрибутов у модели, редактируемый без измнения структуры бд.
Или https://django-mptt.github.io/django-mptt/ для эффективного хранения древовидных структур в бд.
Аноним 25/01/16 Пнд 21:34:33 #288 №634348 
>>634346
Я в начале думал, что просто сделаю какую-нибудь sql процедурку и ей просто заполню нужные мне филды, но тут есть встроенный механизм, почему бы и не воспользоваться
Аноним 25/01/16 Пнд 21:44:28 #289 №634356 
https://github.com/anon3341/2ch.hk
Аноним 25/01/16 Пнд 21:49:03 #290 №634358 
>>634356
И что, проски эти рабочие? Да ещё и не забаненые?
Аноним 25/01/16 Пнд 21:53:44 #291 №634360 
>>631494 (OP)
Господа, с чем может быть связан такой нюанс в Django.
Есть страница, к примеру:
2ch.hk/b
На ней ссылка на тред, к примеру:
2ch.hk/b/12
Когда я перехожу из /b/ на страницу треда- всё в порядке. Когда я заполняю формы- всё в порядке. Однако, когда я нажимаю "Отправить сообщение"- то страница обновляется, и в строке браузера уже не 2ch.hk/b/12, а 2ch.hk/b//
Что за чудеса?
Аноним 25/01/16 Пнд 21:57:19 #292 №634362 
>>634360
А что у тебя в <form action=?
Аноним 25/01/16 Пнд 21:58:26 #293 №634363 
>>634362
Ссылка на мою функцию-представление, которая возвращает thread.html.
Аноним 25/01/16 Пнд 22:00:02 #294 №634364 
>>634363
А пост то отправляется?
Вообще твая функция должна возвращать не thread.html после post запроса а делать редирект, см https://ru.wikipedia.org/wiki/Post/Redirect/Get
Аноним 25/01/16 Пнд 22:06:21 #295 №634371 
>>634364
Отправляется. Функция возвращает не просто html, я не так выразился. Она возвращает рендер.
return render(request,'imageboard_app/thread.html', {'form':form, 'posts':Anon_Post.objects.all(), 'file_form':file_form})
Аноним 25/01/16 Пнд 22:08:55 #296 №634373 
>>634371
Я понимаю что рендер. А должно редирект. Потому что см ссылку которую я дал.
Аноним 25/01/16 Пнд 22:10:01 #297 №634375 
>>634373
Понял, благодарю, буду разбираться.
Аноним 25/01/16 Пнд 22:11:34 #298 №634377 
>>634375
А вообще, конечно, что-то тут не так. Смотри что там в urls.py
Аноним 25/01/16 Пнд 22:29:48 #299 №634390 
Анончики не понимаю по чему все жалуются на пучарму. i7 - 720(да, да самое первое поколение 2010 года) 8гб оперативы (1600 скорости) и убунта 14.04Ю особо никогда не замечал тормозов за pycharm'ом.
Аноним 25/01/16 Пнд 22:34:13 #300 №634395 
>>634390
на гейбуке с 8Гб рам и SSD тоже летает. Как и идейка. компайлер скалы только тормозит '(
Аноним 25/01/16 Пнд 22:36:46 #301 №634398 
>>634395
Кстати, извините за оффтоп, гейбук реально тема? Сколько у него, так сказать, срок эксплуатации? Т.е. время, когда ты не ощущаешь тормозов, лагов, всякой херни с железом?
Аноним 25/01/16 Пнд 22:39:40 #302 №634400 
Анон, как лучше писать простые функции в классах-представлениях?

class MyClass(MyView):
queryset = бла-бла-бла

или

class MyClass(MyView):
def get_queryset(self):
....бла-бла-бла
Аноним 25/01/16 Пнд 22:42:52 #303 №634403 
>>634400
Я бы склонился ко второму варианту как питон вэй.
Аноним 25/01/16 Пнд 22:44:16 #304 №634405 
>>634400
Плюсую второй вариант
Аноним 25/01/16 Пнд 22:55:07 #305 №634411 
>>634398
Ага. Тема. В эксплуатации с 2012, только что ногами не пинал, а бук как новый.
>тормозов, лагов, всякой херни с железом
Ноль. Автономность, отзывчивость гейоси - 10/10.
много лет красноглазил бифор, от винди не могу не блевануть
Аноним 25/01/16 Пнд 22:56:27 #306 №634412 
>>634400
Второй. А вообще - generic брать по максимуму.
Аноним 25/01/16 Пнд 23:00:59 #307 №634417 
14537520598040.jpg
>>633587
min(циферки)
Аноним 25/01/16 Пнд 23:01:29 #308 №634418 
>>634412
прости невужество батюшка, в питоне почти 5 лет ( с него начинал обучение в 13, так что реальной пракьтики особо нет), но что значит 'generic' и почему его брать по максимому)
Аноним 25/01/16 Пнд 23:08:04 #309 №634428 
>>634418
Вьюхи из django.views.generic
Аноним 25/01/16 Пнд 23:10:28 #310 №634431 
>>634418
>почти 5 лет
Не ты ли, катати, тот подлый шакал, что отрицал величие comprehension и выражений-генераторов в пользу map/filter/reduce?
Аноним 25/01/16 Пнд 23:13:01 #311 №634434 
Аноны, как по-быстрому освоить синтаксис питона. Есть два дня. Нужен только синтаксис без всяких объяснялок основ программирования, парадигм и прочего говная сам java-макака
Аноним 25/01/16 Пнд 23:13:36 #312 №634436 
>>634431
нет, не я)
Аноним 25/01/16 Пнд 23:13:36 #313 №634437 
>>634434
У питона нет синтаксиса.
Аноним 25/01/16 Пнд 23:14:32 #314 №634438 
>>634434
https://learnxinyminutes.com/docs/python/
Аноним 25/01/16 Пнд 23:15:50 #315 №634441 
>>634438
Спасибо
Аноним 25/01/16 Пнд 23:24:00 #316 №634449 
>>634436
И как оно, не скучно? Какие технологии используешь? Я б наверное ебанулся, лет 5 конфигурять джангу.
Аноним 25/01/16 Пнд 23:41:43 #317 №634465 
14537545032180.jpg
>>633587
На тебе однострочник, не мучайся:
print(min(map(int, input().split())))
Маленький разбор: input().split() получает на ввод строку и разбивает её по пробелам на список отдельных элементров, map(int, input().split()) применяет функцию int (преобразование в целочисленную переменную) ко всем элементам полученного с ввода списка, min ищет наименьшее число, print выводит на экран. Не благодари.
Аноним 25/01/16 Пнд 23:43:58 #318 №634467 
>>634449
Лишь бы платили)
Аноним 26/01/16 Втр 00:24:41 #319 №634480 
Какой самый лучший GUI фреймворк? Еще чтобы можно было просто его закастомизировать и сделать что-то типа гугловского дизайна.
Аноним 26/01/16 Втр 00:37:23 #320 №634487 
>>634480
Qt/QML
Аноним 26/01/16 Втр 00:44:54 #321 №634491 
>>634487
Вот сейчас гуглил и к тому же выводу пришел. Kivy как-то не очень для десктопа подходит что ли. Или мне так кажется просто. Но я на нем запили игру, а чтобы выстроить кнопки в ряд очень муторно
Аноним 26/01/16 Втр 02:14:32 #322 №634520 
>>634480
pygobject - де-факто основной фреймворк. Как и сам ГТК.
Аноним 26/01/16 Втр 02:32:59 #323 №634523 
>>634520
Первый раз о таком слышу.
Аноним 26/01/16 Втр 02:48:08 #324 №634532 
>>634520
PyGObject -биндинг к GObject, который жи есть гнутая реализация ООП с подсчетом ссылок для PlainC. Gtk - почти Linux-only ГУЙ-библиотека. Никакого Material design как у гугла на ней не сделать. Декларативности как в qml тоже не завезли.
Аноним 26/01/16 Втр 02:58:28 #325 №634537 
>>634532
>Linux-only ГУЙ-библиотека
Поэтому флагман ГТК - гимп - кроссплатформа. И поэтому твой браузер слинкован с ГТК. Попробуй тоньше.
Аноним 26/01/16 Втр 03:04:09 #326 №634539 
>>634537
>гимп
Когда я работал на венде, там он выглядел как говно. И хоткеи в ымперской раскладке не работали.
>твой браузер
Safari
>слинкован с ГТК
из Хромого давно выпилен
Аноним 26/01/16 Втр 07:20:47 #327 №634569 
14537820479530.jpg
14537820479581.png
>>634411
дада
Аноним 26/01/16 Втр 07:24:09 #328 №634571 
>>634434
https://docs.python.org/3/tutorial/
https://www.youtube.com/watch?v=N4mEzFDjqtA
Аноним 26/01/16 Втр 07:25:34 #329 №634572 
>>634480
pygtk/pygi
Аноним 26/01/16 Втр 07:38:30 #330 №634574 
14537831108950.png
>>634532
> Linux-only ГУЙ-библиотека.
Толсто. Наиболее популярный питоноский кросплатформенный гуи софт - deluge, gajim, exaile - на pygtk. Под прыщи на нем вообще тонны популярного софта. А на pyqt софта чуть более чем нихуя. Я знаю только spyder, eric и tortoisehg, но это не популярный софт, а узкоспециализированный и не самый удачный(например гуи для hg мне больше нравится gwsmhg, а он на pygtk).
> на ней не сделать.
Можно дохуя чего сделать, фреймворк очень гибкий и мощный.
> Декларативности как в qml тоже не завезли.
Завезли, glade для этого и ui файлы.
Аноним 26/01/16 Втр 08:23:55 #331 №634583 
Полскажите какую-нибудь хорошую CMS на питоне? django-cms норм, может на фласке что?
Аноним 26/01/16 Втр 08:24:57 #332 №634584 
>>634583
plone. А зачем?
https://www.djangopackages.com/grids/g/cms/
Аноним 26/01/16 Втр 09:19:04 #333 №634590 
14537891442740.jpg
>>634571
> 43 минуты
> Learn python in one video
Аноним 26/01/16 Втр 09:21:24 #334 №634592 
>>634590
Рассчитано на тех кто имеет представление о программировании. Он там показывает все основные констукции языка и встроенные типы.
Аноним 26/01/16 Втр 14:26:50 #335 №634740 
Как в django обновить поле time у модели только один раз (при создании)
Аноним 26/01/16 Втр 14:28:20 #336 №634742 
>>634740
DateTimeField(auto_now_add=True)
Аноним 26/01/16 Втр 14:28:57 #337 №634744 
>>634740
Или (default=timezone.now)
Аноним 26/01/16 Втр 14:31:12 #338 №634747 
>>634742
Сделал так, но поле почему-то всегда NULL
Аноним 26/01/16 Втр 14:36:21 #339 №634752 
>>634747
Странно. Ну можешь переопределить save(если у тебя pk == None здачит объект создан и надо записать дату, а потом дернуть super().save()).
Или метод create https://docs.djangoproject.com/en/1.9/ref/models/instances/
Аноним 26/01/16 Втр 14:38:49 #340 №634756 
>>634752
Собственно так уже и делаю, но за помощь спасибо
Аноним 26/01/16 Втр 14:41:43 #341 №634760 
>>634756
Вот тут кстати рекомендуют делать save свой тоже
http://stackoverflow.com/questions/1737017/django-auto-now-and-auto-now-add
А что за бд? Странно вообще что auto_now_add не работает.
Аноним 26/01/16 Втр 14:49:23 #342 №634764 
https://habrahabr.ru/company/hexlet/blog/275867/

CodeBattle опубликовали статистику. Те кто пишут на Ruby побеждают чаще тех кто пишет на Python, Clojure, JavaScript и прочих.

О чём это говорит? Ruby лучший язык. Да, это несомненно так.
Аноним 26/01/16 Втр 15:00:23 #343 №634782 
>>634764
Да у тебя и D - лучший язык.
Аноним 26/01/16 Втр 15:01:00 #344 №634783 
>>634760
БД: mysql, правда поля создаются триггером, может из-за этого вся проблема?
Аноним 26/01/16 Втр 15:03:00 #345 №634786 
>>634783
> поля создаются триггером
Как это?
Аноним 26/01/16 Втр 15:07:01 #346 №634790 
>>634786
Я в базе создаю триггер, который отрабатывает на изменение в другой таблице, а в мою записывает определенные филды. Вообщем, разобрался я со временем, мой save() отрабатывает. Спасибо, анон, здоровья тебе и чая
Аноним 26/01/16 Втр 15:27:26 #347 №634813 
14538112463320.png
>>631494 (OP)
у меня тут тупой вопрос. Я когда-то ходил на курсы по программированию и решил одну задачу функцией eval, хотя надо было просто завернуть функцию в функции 1000 раз. Дак вот препод тогда в ахуе на меня посмотрел и сказал мол eval используют только мудрые бородатые программисты и вообще это дыра в безопасности тебе мол не гоже этим пользоваться (с таким выражением лица будто я Авадекедавру кастанул). Дак вот я тут решил все с нуля очень углубленно все изучить и начал с Лутца и он буквально на первых страницах пишет, ну вот короче можно еще использовать eval и exec и все збс.
Поясните, где правда?
Аноним 26/01/16 Втр 15:31:00 #348 №634816 
>>634813
Где-то посередине. Также как с goto в сишечке.
В целом лучше не пользоваться, но бывают случаи, довольно редкие, когда оно нужно.
Так же и метаклассами всякими, но в меньшей степени.
Аноним 26/01/16 Втр 15:59:59 #349 №634837 
>>634813
Но вообще:
код в eval трудно будет разобрать тому, кто в твоем коде будет разбираться
сложно отлаживать
он просто не нужен, питон достаточно гибкий сам по себе, можно обойтись без кодогенерации и eval вообще.
Аноним 26/01/16 Втр 16:25:21 #350 №634870 
>>634816
>>634837
спасибо, короче, мои говноскрипты это не испортить
Аноним 26/01/16 Втр 16:52:16 #351 №634916 
Пацаны. Как мне без Flask-WTF нормально хендлить формы? Мне просто WTForms не нравится что-то.
Аноним 26/01/16 Втр 17:50:37 #352 №634971 
Вас приветствует рубист. Вы тут пилите какие-нибудь совместные проекты? А то мне надоел руби-тред, там ничего нет, кроме нубов с тупыми вопросами по рельсам.
Аноним 26/01/16 Втр 17:51:27 #353 №634972 
>>634971
niet
Аноним 26/01/16 Втр 17:52:00 #354 №634973 
>>634971
В долю не возьму.
Аноним 26/01/16 Втр 17:53:39 #355 №634976 
>>634971
Сходи в социоблядства-тред, там были какие-то попытки кооперироваться на жидхабе.
Аноним 26/01/16 Втр 19:07:01 #356 №635048 
Djago поиск.
Sphinx vs haystack. Для говноблога.
И вообще, что лучше?
Аноним 26/01/16 Втр 22:07:45 #357 №635237 
>>635048
Теплое с мягким. Sphink - FTS-движок, Haystack - фронтенд, абстрагирующих конкретные FTS engine'ы. От Sphink какой-то php-душок исходит
Аноним 26/01/16 Втр 22:33:35 #358 №635267 
Сап, народ. Расскажите коротко, как сервер для питона ставить? Я мимо-PHPшник, ради интереса попробовать хочу.
Аноним 26/01/16 Втр 22:36:09 #359 №635270 
>>635267
Для какого фреймворка?
Аноним 26/01/16 Втр 22:38:07 #360 №635273 
>>635270
Давай для Django.
Аноним 26/01/16 Втр 22:42:05 #361 №635280 
14538373254460.png
14538373254491.jpg
14538373254522.png
>>635273
В django ты просто набираешь python manage.py runserver
И у тебя будет доступен dev сервер на 8000 порту с твоим приложением. Можешь ещё поставить какой-нить django-debug-toolbar и сможешь видеть прямо на страничке всякую хреть, например что в кэше или какие sql запросы происходили.

Деплой на боевой сервер проходит примерно как с php-fpm, но тебе это для "попробовать" не надо.
Аноним 26/01/16 Втр 22:47:37 #362 №635290 
>>635280
Спасибо.
Аноним 27/01/16 Срд 05:43:08 #363 №635509 
>>634916
Бамп.
Аноним 27/01/16 Срд 05:52:43 #364 №635510 
Когда пайчарм научат всем тем фишкам, что умеет идея?
Аноним 27/01/16 Срд 08:18:44 #365 №635540 
>>635510
Каким?
Аноним 27/01/16 Срд 09:32:14 #366 №635569 
>>635510
какие ты используешь?
Аноним 27/01/16 Срд 09:36:26 #367 №635571 
>>635510
Вообще можно использовать обычную idea и поставить на неё python-плагин. Питон плагин умеет всё тоже что пичарм.
Аноним 27/01/16 Срд 11:09:15 #368 №635603 
>>635540
>>635569
Цеплять документацию из интернетов (в идее можно было указывать урлы на жавадоки), например.

>>635571
Ничего не изменится, базарю.
Аноним 27/01/16 Срд 11:15:05 #369 №635606 
>>635603
В питоне есть docstrings так-то.
Аноним 27/01/16 Срд 11:23:02 #370 №635609 
>>635606
Ну бля, у меня и они не работают. Либо их нет в том говне, что я юзаю. А я юзаю Flask{,-Login,-SQLAlchemy}.
Аноним 27/01/16 Срд 11:47:28 #371 №635615 
14538844489110.png
>>635603
Аноним 27/01/16 Срд 11:48:02 #372 №635617 
>>635609
Наведи на код и нажми ctrl+q
Аноним 27/01/16 Срд 11:49:33 #373 №635619 
>>635615
Спасибо.

>>635617
Иди нахуй.
Аноним 27/01/16 Срд 11:53:16 #374 №635622 
14538847969650.png
14538847969661.png
>>635619
Грубо
Аноним 27/01/16 Срд 11:54:12 #375 №635624 
Почему вы изучаете питон, если на нем никто еще не заработал?
Аноним 27/01/16 Срд 11:54:14 #376 №635625 
>>635622
Ты неумный?
Аноним 27/01/16 Срд 11:55:44 #377 №635629 
>>635615
Что за софтина?
Аноним 27/01/16 Срд 11:56:15 #378 №635630 
>>635629
И ты тоже дебил?
Аноним 27/01/16 Срд 11:56:28 #379 №635631 
>>635629
pycharm
Аноним 27/01/16 Срд 12:01:15 #380 №635636 
>>635630
Ясно.
>>635631
Спасибо.
Аноним 27/01/16 Срд 13:45:33 #381 №635684 
Вопрос по Python 3.
Есть бинарник, который запускается через subprocess.run(). Это делается из функции, которая вызывается через multiprocessing.Pool().map(func, iterable). Если есть 12 ядер, то от скольки тредов не офигеет GIL?
Аноним 27/01/16 Срд 13:46:27 #382 №635685 
>>635684
при чем тут gil?
Аноним 27/01/16 Срд 13:50:29 #383 №635688 
>>635684
Т.е. ты запускаешь сторонний бинарник из питона, и чтобы этот бинарник тебя не блочил - ты запускаешь его через мультипроцессинг? Но зачем, если тебя блочит ожидание вывода от субпроцесса, и можно просто взять asyncio.create_subprocess_exec?
Аноним 27/01/16 Срд 13:54:16 #384 №635689 
>>635685
Извини, хуйню написал. Вопрос такой: как эффективно распараллелить запуск бинарников?
Аноним 27/01/16 Срд 13:56:16 #385 №635692 
>>635689
Так как ты и делаешь.
Можешь и через threading делать, какая разница gil никак не влияет на подпроцессы.
Аноним 27/01/16 Срд 13:56:57 #386 №635694 
>>635692
Он так не делает. Он ожидает вывода от бинарника и его блочит iowait.
Аноним 27/01/16 Срд 13:59:59 #387 №635701 
>>635684
> multiprocessing.Pool().map
Кстати так не рекомендуется делать. По возможности пиши как-то типа
pool = Pool()
pool.blabla
Аноним 27/01/16 Срд 14:00:33 #388 №635703 
>>635694
Блочит один процесс, а он их делает много через multiprocessing.
Аноним 27/01/16 Срд 14:04:11 #389 №635707 
>>635703
Мултипроцессинг тут нахуй не нужен, только машину жрет. Можно из одного питонячьего инстанса запускать сколько влезет и без блока. Через asyncio - https://docs.python.org/3/library/asyncio-subprocess.html
Аноним 27/01/16 Срд 14:26:07 #390 №635725 
>>635694>>635707
Спасибо за asyncio. А если мне вообще всё равно на вывод? Бинарник должен только обработать файл, имя которого ему скидывается из общего списка и записать результат на диск. В среднем для одного файла он это делает за 3 секунды.
>>635701
Обычно делаю через with Pool(num) as pool.
Аноним 27/01/16 Срд 14:29:52 #391 №635731 
>>635725
А зачем тебе вообще питон? Почему просто в шелле не запустить
/bin/foo >file1 &
/bin/foo2 >file2 &
и т.п.
Или в питоне через os.system('/bin/foo >file &')
Зачем городить всякие мультипроцессинги если тебе на вывод пофигу?
Аноним 27/01/16 Срд 14:36:16 #392 №635735 
>>635731
Хотелось цельную систему выстроить по анализу данных, чтобы поставить на ночь, а утром уже всё готово. Обработать нужно где-то 1кк файлов. Если по одному за раз, то это как-то слишком долго.
Аноним 27/01/16 Срд 14:37:55 #393 №635738 
>>635735
Если ты в шелле запускаешь "/путь/команда &" то оно запускается в фоне.
Аноним 27/01/16 Срд 14:54:26 #394 №635754 
Резюмирую. Перепишу это говно на баш и буду юзать gnu parallel. Всем спасибо.
Аноним 27/01/16 Срд 15:00:19 #395 №635759 
Посоны, в укусе питона чувак пишет:
>Если имя переменной начинается с двойного подчёркивания, как, например, __privatevar , Python делает эту переменную приватной (private). Поэтому принято имя любой переменной, которая должна использоваться только внутри класса или объекта, начинать с подчёркивания; все же остальные имена являются публичными, и могут использоваться в других классах/объектах. Помните, что это лишь традиция, и Python вовсе не обязывает делать именно так (кроме двойного подчёркивания).

С двойным подчеркиванием все понятно - я потыкал в шелле, действительно, объявленную таким образом переменную без явно определенного геттера/сеттера дернуть не удается. А от одинарного подчеркивания какой профит? Я проверял - такая переменная доступна, как и переменная без подчеркиваний вообще.
Аноним 27/01/16 Срд 15:01:01 #396 №635760 
>>635754
Параллель то зачем? Опять усложняешь. Запуска в бекграунде через & и редиректа stdout/stderr тебе хватит. Чтобы процессы не отваливались при закрытии терминала (а так есть с & ) можно запускать бинарники от инита, setsid ./yoba &>/tmp/log - запустит, перенаправит весь вывод и не заблочит.
Аноним 27/01/16 Срд 15:02:16 #397 №635762 
>>635760
Я бы stderr в другой файл направил иначе там будет каша
Аноним 27/01/16 Срд 15:03:08 #398 №635764 
>>635759
Я вообще мало смысла вижу в таком хардкорном отказе в доступе к переменной. Если прижмет - я все равно ее достану, только 100500 костылей нагорожу. А чтобы просто дать понять что переменная не предназначена для прямого использования _name достаточно.
Аноним 27/01/16 Срд 15:04:31 #399 №635765 
14538962716470.png
>>635759
Это просто соглашение, тот кто будет использовать твой код будет знать что это внутренняя переменная, которую лучше не трогать. Никак это насильно не ограничевается.
К __переменным тоже доступ получить не проблема
Аноним 27/01/16 Срд 15:06:26 #400 №635767 
>>635764
>>635765
Ок, я понял.
Аноним 27/01/16 Срд 15:11:26 #401 №635775 
>>635760
Мне нужно обработать 1кк фалов. Бинарник на вход берёт только один файл. Если я правильно понимаю, то запустив параллельно несколько процессов, я быстрее разберусь с этой бучей. Отрабатывать всё это дело неделю не вариант.
Аноним 27/01/16 Срд 15:13:19 #402 №635777 
>>635775
Запускай сразу кучу бинарников в бекграунде & или через setsid. Работать они будут одновременно.
Аноним 27/01/16 Срд 15:17:13 #403 №635780 
>>635777
Но не сразу миллион же.
Аноним 27/01/16 Срд 15:38:01 #404 №635789 
>>631494 (OP)
Не знаю туда ли я зашел но на всякий случай спрошу. В общем обмазался я пастой про дайв инто питон. Книгу прочитал еще пару лет назад, pep8 тожедаже раньше. Теперь смотрю на асинхронные сервера чтобы войти в увлекательный мир хайлоада ну и ради разнообразия, посмотреть что-то кроме фласка и джанги.
А теперь, внимание, вопрос - tornado или asyncio? И там и там асинхронщина, корутины, иолуп, вебсткеты всякие. Торнадо таки старее и стабильнее, асинкио включен в стандартную поставку третьего питона который я и использую.
Аноним 27/01/16 Срд 15:40:59 #405 №635791 
>>635789
Торнадо умеет сам в asyncio http://www.tornadoweb.org/en/stable/asyncio.html
Вообще если для веба/вебсокетов то торнадо повзрослее будет. Для асинкио я пока не знаю каких-то готовых фрейворков, они есть, но какие-то пока не оче доделанные.
Аноним 27/01/16 Срд 15:58:42 #406 №635808 
>>635791
Благодарствую. За ссылку на документацию вообще отдельное спасибо. У меня примерно такие же мысли были
Аноним 27/01/16 Срд 16:00:10 #407 №635810 
>>635808
twisted, кстати, тоже умеет asyncio использовать в качестве реактора.
Аноним 27/01/16 Срд 16:06:52 #408 №635815 
>>635810
Смотрел на него, на первый взгляд даже поинтереснее будет чем торнадо из-за более широкого профиля могу хуйню нести. Но лично для меня у него фатальный недостаток - нет поддержки третьего питона
Аноним 27/01/16 Срд 16:08:04 #409 №635816 
>>635815
Уже есть вроде. Просто не все протоколы ещё портированы.
Аноним 27/01/16 Срд 16:27:40 #410 №635837 
>>635816
Интересно, ознакомлюсь. Делал на этих фреймворках что-нибудь для продакшна?
Аноним 27/01/16 Срд 16:32:34 #411 №635844 
>>635837
Делал, но не для продакшена.
торнадо вообще фейсбуком написан для их friendfeed.
Аноним 27/01/16 Срд 16:43:39 #412 №635855 
>>635844
Про фейсбук и френдфид слышал. И как ощущения от проделанной работы?
Аноним 27/01/16 Срд 16:48:43 #413 №635856 
14539025231810.webm
>>631494 (OP)
Есть два класса, главный и вложенный. В конструкторе главного создается экземпляр вложенного, конструктор которого, в свою очередь, получает ссылку действующий экземпляр главного (self). После этого ссылка на экземпляр вложенного сохраняется в качестве переменной действующего экземпляра главного и получается такой себе закрытый круг:
class Main:
--class Sub:
----def __init__(self, parent):
------self.parent = parent
----def foo(self):
------print(self.parent.text)
--def __init__(self, text):
----self.child = Sub(self)
----self.text = text
Итак, вопрос: Не охуеет ли от того расклада GarbageCollector, и не будет ли каких-нибудь утечек памяти? Можно ли как-то оптимизироват эту хуиту?
Аноним 27/01/16 Срд 16:48:46 #414 №635857 
>>635855
Ну на твистед я делал сервер для карточной игры. Дальше тестирования это не пошло. Да и альтернатив тогда особо не было если хочешь какой-то протокол реализовать и не изобретать велосипедов, для твистед куча протоколов всяких поэтому реализована.
Очень продуманный и грамотный API и архитектура.
На торнадо я делал веб-сервер, который должен был принимать много мелких запросов и складывать их в очередь. Нормально работало.
Аноним 27/01/16 Срд 17:03:00 #415 №635869 
>>635856
https://docs.python.org/3/library/weakref.html
Аноним 27/01/16 Срд 17:24:06 #416 №635902 
>>635857
Понял. Благодарю за ответы, некоторое прояснение появилось
Аноним 27/01/16 Срд 19:33:46 #417 №636055 
кто-то сталкивался с регулярными грамматиками?
имеется задача построить нка по регулярному выражению (простому, без вложеных скобок даже)
нка в дка перевести и проверить строку могу.
Аноним 27/01/16 Срд 19:36:39 #418 №636057 
14539125996170.png
Добрый вечер, в моем городе буквально через день game jam, поэтому ставим всей командой pygame. Так при обновлении pip, pip install --upgrade pip, вылетает traceback, гугление ничего не помогло. В чем проблема?
Аноним 27/01/16 Срд 19:37:45 #419 №636059 
>>636057
Очевидно надо через sudo это делать
Аноним 27/01/16 Срд 19:38:57 #420 №636062 
>>636057
>pip 8.0.0
хм у меня пип версия 1.5.4
Аноним 27/01/16 Срд 19:59:20 #421 №636086 
14539139607720.jpg
>>635869
>>635856
Хорошо, разобрался. Тогда другой вопрос — можно ли как-нибудь получить модифицированный environment из Popen?
Т.е, допустим, я делаю так:
env = copy.deepcopy(os.environ)
env['some_var'] = ''
script = subprocess.Popen('python script.py', env = env)
Внутри script.py я шаманю на переменной среды some_var. А как потом эму модифицированную переменную получить в основном скрипте? То, есть можно ли как-нибудь экспортировать значения среды из Popen?
Аноним 27/01/16 Срд 20:00:38 #422 №636090 
>>636086
Нет
Аноним 27/01/16 Срд 20:01:52 #423 №636091 
14539141124550.png
>>636090
Совсем-совсем никак?
Аноним 27/01/16 Срд 20:02:06 #424 №636092 
>>636086
И зачем запускать питон скрипт через Popen? Почему не использовать import или там ещё чего да хоть eval?
Аноним 27/01/16 Срд 20:03:06 #425 №636094 
>>636091
Вот именно переменные среды ты никак оттуда не получишь. Можно какое-нить IPC использовать, в простейшем случае в файл их сохранять.
Аноним 27/01/16 Срд 20:04:21 #426 №636098 
>>636091
Даже в баш ты никак если запускаешь скрипт один из другого через новый шелл не получишь их поэтому надо делать source file.sh если хочешь переменные эти оттуда получть.
Аноним 27/01/16 Срд 20:13:42 #427 №636105 
>>636057

Нет прав на установку.

Аноним 27/01/16 Срд 21:37:26 #428 №636167 
Объясните дауну пожалуйста, как с помощью lxml получить, например, отсюда http://www.bloomberg.com/quote/USDRUB:CUR курс валюты, просто цифры чтобы вернулись. я скорее всего чего-то делаю не так, подскажите пожалуйста

from lxml import html
from lxml import etree

def get_urls_from_page(url):

result = []

path = './/div clas[@class = "price"]/text()'

doc = html.parse('http://www.bloomberg.com/quote/USDRUB:CUR')

values = doc.xpath()

for i in values:

result.append(i)

return result

print (doc)
Аноним 27/01/16 Срд 21:38:07 #429 №636169 
>>636167
сука, я все проебал, вот норм:

from lxml import html
from lxml import etree

def get_urls_from_page(url):

result = []

path = './/div clas[@class = "price"]/text()'


doc = html.parse('http://www.bloomberg.com/quote/USDRUB:CUR')

values = doc.xpath()


for i in values:

result.append(i)

return result


print (doc)
Аноним 27/01/16 Срд 22:00:42 #430 №636185 
>>636169
>.//div clas[@class = "price"]/text()'
точка лишняя, не?
clas - class
Аноним 27/01/16 Срд 22:06:02 #431 №636189 
14539215622060.jpg
>>636185
поправил, но лучше не стало.

возвращает вот что:

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-46-32bab99cc426> in <module>()
14 doc = html.parse('http://www.bloomberg.com/quote/USDRUB:CUR')
15
---> 16 values = doc.xpath()
17
18

lxml.etree.pyx in lxml.etree._ElementTree.xpath (src\lxml\lxml.etree.c:59902)()

TypeError: xpath() takes exactly 1 positional argument (0 given)

Аноним 27/01/16 Срд 22:09:09 #432 №636194 
>>636189
lxml не умеет обращаться к веб-серверам. Для этого надо использовать другие библиотеки.
Аноним 27/01/16 Срд 22:11:18 #433 №636196 
>>636194
блять, ты серьезно? я второй вечер ебусь с этим.
ладно, а какие годятся для этого? Beautifulsoup4 пойдет?
Аноним 27/01/16 Срд 22:12:55 #434 №636202 
>>636196
lxml, beautifulsoup — это парсеры html. Они не обращаются к серверу, а просто парсят строку. Иными словами они ожидают примерно такого:
html.parse('<html><head></head></html>')
Аноним 27/01/16 Срд 22:13:14 #435 №636203 
>>636194
Не пизди, умеет. Только для https надо свои костыли прописывать.

>>636189
У тебя вообще много чего там не так в коде начиная от path и заканчивая тем, что оно нигде не используется.
По быстроляну исправил и все работает
http://pastebin.com/P1eLBNty
Аноним 27/01/16 Срд 22:15:19 #436 №636209 
>>636203
> Не пизди, умеет.
Не пизди, не умеет. http://lxml.de/parsing.html#parsing-html
Аноним 27/01/16 Срд 22:17:38 #437 №636213 
>>636209
Ты, сука, тупой, блядь?
>lxml can parse from a local file, an HTTP URL or an FTP URL.
Аноним 27/01/16 Срд 22:18:33 #438 №636217 
>>636203
>исправил и все работает
Спасибо, Анон!
Аноним 27/01/16 Срд 22:18:37 #439 №636218 
>>636213
Ладно, обосрался.
Аноним 27/01/16 Срд 22:26:43 #440 №636232 
Кто так функции объявляет? Щито она вообще берёт, что это за переменная: подпеременные и -> тип в итоге? Нихуя не понимаю
def semantic_similarity(bag1, bag2: list, w2v_model, unknown_coef=0.0) -> float:
Аноним 27/01/16 Срд 22:32:56 #441 №636247 
>>636232
https://www.python.org/dev/peps/pep-3107/
Аноним 27/01/16 Срд 22:45:41 #442 №636263 
>>636247
Данке шен
Аноним 27/01/16 Срд 22:48:00 #443 №636267 
>>636203
Альтернативный вариант https://dpaste.de/Mp4C
мимо-ньюфаг-который-решает-чужие-задачки-для-тренировки
Аноним 27/01/16 Срд 23:47:08 #444 №636344 
А ещё тупой вопрос

def abc(a):
..if a == 0:
....return
..print 'huy'
..print 'ololo'

чому когда возвращается пустой return оно в него пихает всё что ниже? не разумею
Аноним 27/01/16 Срд 23:53:56 #445 №636349 
>>636344
В твоем примере всегда возвращается None. Разница только в том, что принты вызываются, если а != 0.
Аноним 27/01/16 Срд 23:59:16 #446 №636357 
>>636349
Ага, понятно
Т.е. код после возврата всё равно исполняется?
Аноним 28/01/16 Чтв 00:04:42 #447 №636366 
>>636357
Нет. Просто ты никакого другого возврата кроме None не указал. Если вообще не писать return в функции - питон мысленно "дописывает" её сам и возвращает None. Т.е. с точки зрения интерпретатора твоя функция выглядит так:

def abc(a):
..if a == 0:
....return None
..print 'huy'
..print 'ololo'
..return None

Ты вообще какого результата добиться хочешь? Может, лучше так:

def abc(a):
..if not a:
....print 'huy'
....print 'ololo'
Аноним 28/01/16 Чтв 00:06:14 #448 №636369 
>>636366
Лучше бесспорно, я просто читал о "мёртвом коде", который типа после ретёрна не выполняется, попробовал а оно хуйак и выполняется, и это-то мне и странно
Аноним 28/01/16 Чтв 00:08:00 #449 №636371 
>>636369
У меня не выполняется. Ты вообще как проверяешь выполнение-то? Я думал на None функцию чекаешь.
Аноним 28/01/16 Чтв 00:11:19 #450 №636378 
>>636371
ну печатать же тоже код
и после ретёрна что-нибудь типа:

ворд = "хуйхуй"
принт ворд
ворд *= 2
принт ворд

тоже будет выполняться
а возвращать функция нихуя не будет, да, тут сомнений нету
Аноним 28/01/16 Чтв 00:13:05 #451 №636381 
14539291856500.png
>>636378
Аноним 28/01/16 Чтв 00:14:11 #452 №636384 
14539292511380.png
>>636381
Аноним 28/01/16 Чтв 00:15:50 #453 №636386 
>>636384
У тебя return не выполняется при a != 0.
Аноним 28/01/16 Чтв 00:16:10 #454 №636387 
>>636384
Ну, блять, ты же а не равное нулю в функцию передаешь. У тебя выполнение в блок if не заходит и return не вызывается.
Аноним 28/01/16 Чтв 00:17:26 #455 №636389 
>>636386
>>636387
Ебать я лох.
Спасибо, парни!
sageАноним 28/01/16 Чтв 00:27:06 #456 №636400 
>>636389
>писать "парни", вместо "аноны" или "куны"
Обоссал ньюфагера.
Аноним 28/01/16 Чтв 00:30:52 #457 №636406 
>>636400
>2016
>всё ещё верить в ньюфагов-олдфагов-тян
>обссыкаться от всего подряд
Аноним 28/01/16 Чтв 00:30:52 #458 №636407 
14539302530510.jpg
>>636400
>> писать "парни", вместо "аноны" или "куны"
> Обоссал ньюфагера.
sageАноним 28/01/16 Чтв 00:33:17 #459 №636413 
>>636407>>636406
А ньюфагеры рвутся, найс :)
Аноним 28/01/16 Чтв 01:36:16 #460 №636463 
14539341761270.jpg
Всегда пишу "Господа".
Аноним 28/01/16 Чтв 11:34:00 #461 №636619 
Зойчем нужен ipython notebook?
Аноним 28/01/16 Чтв 11:45:43 #462 №636627 
>>636619
Написано же все. Эдакий маткад + офис + питон.
Аноним 28/01/16 Чтв 11:48:05 #463 №636628 
>>636619
В белом мире лабы делать, ну и всё такое.
Наглядно, прикольно, удобно - всем нра
Аноним 28/01/16 Чтв 12:05:07 #464 №636642 
>>636627
>>636628
Так именно в браузере зачем? Чтобы потом экспортировать html с листингом в лабу?
Аноним 28/01/16 Чтв 16:14:12 #465 №636885 
Привет, Аноны. Нужно ли использовать del для удаления из памяти уже ненужных списков, констант, и так далее, или хуй с ним?
Аноним 28/01/16 Чтв 16:45:01 #466 №636917 
>>636885
хуй с ним.
Аноним 28/01/16 Чтв 17:37:38 #467 №636956 
Вопрос по джанге. Есть модель, в ней филды должны выводить count из других моделей. Как лучше сделать вьюху? И использовать foreign keys?

Аноним 28/01/16 Чтв 18:41:03 #468 №637024 
Кто-нибудь пилил приложения под ведро на киви? Норм все собирается и пашет?
Аноним 28/01/16 Чтв 19:40:31 #469 №637093 
Анон, подскажи нубу где дальше знаний набраться? Почти закончил бесплатный курс на курсере от Мичиганского университета, довольно годно, мне понравилось. Но там начальные знания а дальше курсы у них платные, сейчас бы не хотелось платить лол.
Подкинь наводку, бро.
Аноним 28/01/16 Чтв 19:43:40 #470 №637098 
Аноны, подскажите какие-нибудь открытые проекты, куда можно поконтрибьютить после работы, чтобы помощь им действительно была нужна.
Уже 2 года разработки на python за плечами, писал как-то и полгода на С.
Аноним 28/01/16 Чтв 19:45:11 #471 №637103 
>>636956
а в джанге орм для бд используется алхимия или своя? Я не сталкивался с ней. А в теории да, используешь foreign key к моделям, которые тебе нужны, а затем аггрегируешь для вывода.
Аноним 28/01/16 Чтв 19:46:11 #472 №637105 
>>637098
Трендинг на гитхабе.
Аноним 28/01/16 Чтв 19:47:52 #473 №637109 
>>637093
Coursera, я там как-то шарился - знания неплохие дают. Хз что со стоимостью обучения.
Ну и классик вариант - codeacademy/
Аноним 28/01/16 Чтв 19:49:04 #474 №637113 
>>637109
Он уже бесплатную курсеру прошел. Кодекадеми ничего нового теперь не добавит.
Аноним 28/01/16 Чтв 19:54:55 #475 №637122 
>>637113
Сорри, в глаза после работы долюблюсь.
Я бы на его месте за Лутца взялся, это даст довольно неплохие знания.
Аноним 28/01/16 Чтв 19:59:42 #476 №637130 
>>637122
Спасибо, Анон.
Нашел на торрентах его.
Аноним 28/01/16 Чтв 20:01:56 #477 №637133 
>>637122
Я бы на его месте реальные задачи искать начал. Знания - это прекрасно, но он быстро разочаруется в этом говне, если не будет превращать знания в действующий код. Пусть скриптами автоматизирует все, что может; решает задачки на checkio или codewars; разбирается в чужом опенсорс на гитхабе; начинает реализовать какую-то свою идеи, обложившись гуглом и stackoverflow.

А Лутц при этом используется, как справочник, чтобы не изобретать велосипеды.
Аноним 28/01/16 Чтв 20:05:07 #478 №637136 
>>637133
Благодарю, бро. Да, с практикой куда интересней учить.

Аноним 28/01/16 Чтв 20:14:12 #479 №637144 
>>637136
Если с идеями для проектов голяк, то правда checkio попробуй - там задачи с возрастающей сложностью. Плюс они пытаются их подобрать таким образом, чтобы решения можно было где-то в большом проекте использовать. Плюс по каждой задаче смотри первые три most voted решения других людей и сравнивай их со своими, там интересные фишки попадаются.

Со временем начнут появляться мысли чего-нибудь такое написать. Распарсить какую-нибудь страничку, написать скрипт автоматического бэкапа порнухи, или скрипт для наведения порядка в папке Downloads, например. Можешь попробовать свои реализации классических алгоритмов и структур написать. Разные виды сортировок или связные списки. Поймешь заодно, как это все работает.
Аноним 28/01/16 Чтв 20:23:34 #480 №637154 
14540018141160.png
>>637144
Есть еще на двоще добрый Анон, Чаю.
Аноним 28/01/16 Чтв 20:58:13 #481 №637202 
>>637103
Да я уже подумал, что может быть лучше использовать обычные integerfield's, а во view сделать один sql запрос и выгрести все, хз, выгоднее ли это с точки зрения обращения к бд
Аноним 28/01/16 Чтв 20:59:36 #482 №637204 
>>637202
Оптимизируй только когда понадобится, ты таким образом избавишься от 99% проблем, серьёзно.
Аноним 28/01/16 Чтв 21:06:16 #483 №637207 
>>637204
Да, анон, это вообще золотое правило разработки. Кнут вроде советовал. Но тут дело, скорее в том, что sql - для меня проще, лол
Аноним 28/01/16 Чтв 22:54:27 #484 №637280 
>>637204
Когда понадобится может оказаться поздно, и для оптимизации придется переписывать 60% кода и менять архитектуру. Вот веселье то будет.
Аноним 28/01/16 Чтв 23:57:38 #485 №637324 
14540146590630.jpg
>>637280
Вот когда понадобится, тогда и приходите.
Аноним 29/01/16 Птн 01:27:55 #486 №637377 
>>637204
Это не отменяет необходимости нормального проектирования, и выбора структур данных. И вообще скорее про ++i vs i++
Аноним 29/01/16 Птн 03:59:39 #487 №637424 
Сап. Есть код:
while ['.' in i for i in res].count(True)<CHAIN_LENGTH:
....key = ' '.join(res[-2:])
....ch = choice(words[key])
....res.append(ch)

Почему-то каждую итерацию res пересоздаётся заново, вместо того, чтобы добавлять в себя элементы. Если исправить условие цикла на

while len(res)<CHAIN_LENGTH:

то всё работает нормально. Что вообще происходит? Я уже нифига не понимаю.
Аноним 29/01/16 Птн 04:18:53 #488 №637429 
>>637424
>>['.' in i for i in res].count(True)
Что это?
Аноним 29/01/16 Птн 04:22:04 #489 №637430 
>>637429
res - это по сути слова, которые я потом объединяю в предложение. Тот кусок кода проверяет количество точек, т.е. фактически количество предложений.
Аноним 29/01/16 Птн 04:23:30 #490 №637433 
>>637430
>>count(True)
Хули тут "True"?
Аноним 29/01/16 Птн 04:25:10 #491 №637435 
>>637433
udp: он у тебя 1 раз выполняется походу
Аноним 29/01/16 Птн 04:27:38 #492 №637436 
>>637435
Проверял уже. Исправил на
while number_of_dots<CHAIN_LENGTH:
...
....number_of_dots = [('.' in i) for i in res].count(True)
Результат тот же.

>>637433
'.' in i возвращает True/False
Аноним 29/01/16 Птн 04:28:33 #493 №637437 
>>637435
>>637433
Да и вообще, суть не в верности условия, а в том, что res новыйна каждом шаге.
Аноним 29/01/16 Птн 04:37:12 #494 №637438 
>>637437
Можа пришлешь побольше кода, а не урывками?
Аноним 29/01/16 Птн 08:24:41 #495 №637473 
Антоши кто пользуется PyCharm.

Допустим у меня проект с вложенными packages:
myproj.aaa.bbb.ccc
и в последнем определён класс MyClass

в другом месте своего проекта я пишу
MyClass.<ctrl+пробел>

PyCharm заботливо показывает список того, что он может импортировать. Выбираю свой проект, <ENTER> вверху создаётся строчка с импортом.
Во всех моих проектах всё работает отлично и создаётся как положено:
from myproj.aaa.bbb.ccc import MyClass

Но вот в одном проекте по какой-то причине генерирует
from aaa.bbb.ccc import MyClass

(путь не абсолютный от корня, а относительный)

Вангую дело в настройках проекта. В чём может быть дело?

Python 2, во всех файлах стоит рекомендуемая строчка:
from __future__ import absolute_import
Аноним 29/01/16 Птн 09:07:23 #496 №637479 
14540476434450.jpg
Django. Борда. 2 модели: треды и посты. Просмотр борды (треды + последние посты в них).
Как это реализовать без чудовищных костылей?
У меня получается какой-то бред с подгрузкой всех постов, цикл с отсеиванием ненужных, затем адские циклы в шаблоне. 2 запроса.
Проще это сделать через raw sql? И выводить одним циклом?
Помогите плес.
Аноним 29/01/16 Птн 09:36:26 #497 №637490 
>>637479
не знаком с django, но это обычно делается на SQL.

Таблицы:

Threads
id (int или GUID), первичный ключ
caption (varchar(100))

Posts
id (int или GUID), первичный ключ
thread_id (ссылка на id треда)
post_number (int - порядковый номер поста в треде)
message (varchar(1000)) - сообщение поста
dt_created (datetime) - когда создан пост

Примеры использования (на MS SQL)
Вывод 10 названий тредов + дат создания на странице:
SELECT TOP 10 t.id, t.caption, min(p.dt_created) -- время создания треда == времени создания первого поста
FROM Threads t
LEFT JOIN -- чтобы также выводились треды без постов
Posts p
ON t.id = p.thread_id
GROUP BY t.id, t.caption
ORDER BY min(p.dt_created) DESC -- от последнего треда к старым

дальше уже по для каждого полученного id треда запрашиваешь столько постов, сколько надо.
Аноним 29/01/16 Птн 10:49:50 #498 №637505 
>>637479
>адские циклы
Чому адские?

Посты связаны по первичному ключу с тредами.

Один цикл - вывод все тредов, второй вложенный - всех постов в треде по ключу. Во вьюхе оставляешь последние N постов.

>>637490

В Джанго SQL запросы встроены в API.
Аноним 29/01/16 Птн 10:55:39 #499 №637513 
Перекiт хлопци
https://2ch.hk/pr/res/637512.html
https://2ch.hk/pr/res/637512.html
https://2ch.hk/pr/res/637512.html
https://2ch.hk/pr/res/637512.html
https://2ch.hk/pr/res/637512.html
Аноним 29/01/16 Птн 11:55:07 #500 №637539 
14540577078010.jpg
>>637513
БАМП!
Аноним 29/01/16 Птн 12:44:19 #501 №637564 
Добавил еще ультрагодноты, хотя давно надо было уже это сделать.

https://github.com/TheKnightsWhoSayNi/info/wiki/Books#Лёгкие-книги
Аноним 29/01/16 Птн 13:39:40 #502 №637591 
Анончик, есть форма для джанги

class RegistrationForm(UserCreationForm):
username = forms.CharField(required=True, max_length=25)
email = forms.EmailField(required=True)
password1 = forms.CharField(widget=PasswordInput)
password2 = forms.CharField(widget=PasswordInput, label='Confirm Password')

class Meta:
model = User
fields = ("username", 'email', "password1", "password2")

def clean_password2(self):
user = super(RegistrationForm, self).save(commit=False)
user.email = self.cleaned_data['email']
password1 = self.cleaned_data['password1']
password2 = self.cleaned_data['password2']
if password1 != password2:
raise forms.ValidationError("Passwords do not match.")
return password2


Вопрос: каким образом вызывается функция клин_пасворд? Что её вызывает?
Аноним 29/01/16 Птн 15:24:34 #503 №637661 
Наконец-то питонотреды начали закрывать.
Аноним 29/01/16 Птн 15:39:14 #504 №637672 
>>637661
капелюх-треды начали закрывать
Аноним 29/01/16 Птн 15:56:56 #505 №637687 
14540722164490.png
14540722164491.png
Аноним 29/01/16 Птн 16:19:07 #506 №637697 
>>637687
Поделись цветовой схемой, плиз.
Аноним 29/01/16 Птн 16:21:19 #507 №637701 
>>637697
https://github.com/atom/one-dark-syntax
Аноним 29/01/16 Птн 16:24:22 #508 №637704 
>>637701
У меня в рубях он не подсвечивает аргумент >_<
Аноним 29/01/16 Птн 18:06:46 #509 №637790 
>>637438
Уже нашёл ошибку.
try:
...
except:
....pass
Аноним 29/01/16 Птн 18:26:04 #510 №637806 
Я к вам с платиной, ребята. Правда, что на питоне нет работы для новичков?
или это все враки?
Аноним 29/01/16 Птн 18:35:02 #511 №637817 
Где перекат то?
Аноним 29/01/16 Птн 18:36:16 #512 №637819 
Как выводить юникод в cmd?
Аноним 29/01/16 Птн 20:08:51 #513 №637930 
>>637806
Ну фиг знает, я имея год опыта таки смок устроиться backend погромистом, и это в мухосранске
Аноним 29/01/16 Птн 20:20:30 #514 №637939 
>>637930
а где год опыта приобрел?
Аноним 29/01/16 Птн 20:23:01 #515 №637940 
Сап. Есть кусок кода http://pastebin.com/yvtF9SyM

Проблема в том, что
print(">RES 0:", res)
почему то выдаёт [''], хотя в first_word пустых строк нет вообще.

Пример вывода:
'.' in first_word False
'' in first_word False
' ' in first_word False
'.' in res[0] False
'' == res[0] True
' ' in res[0] False
>RES 0: ['']
.

В чём может быть проблема?
Аноним 29/01/16 Птн 21:31:22 #516 №638004 
>>637940
first_word - это список?
Аноним 29/01/16 Птн 21:35:10 #517 №638006 
>>638004
Да. words - это дикт.
Аноним 29/01/16 Птн 21:38:57 #518 №638009 
>>638006
У тебя res = choice(first_word), выходит что res строка, но потом ты аппендишь что-то в нее, разве это сработает?
Аноним 29/01/16 Птн 21:43:04 #519 №638015 
>>638009
first_word - это лист листов типа [['a', 'b'], ['c', 'd'],]
Аноним 29/01/16 Птн 22:22:18 #520 №638052 
>>637940
Вот здесь не пойму:
first_word = tuple(filter(lambda x: c.lower() in x[0].lower(), words.keys()))
Ты берешь ключ словаря, и проверяешь совпадает ли введенная строка с первым символом ключа. Есть подозрение, что ты имел в виду что-то другое.
Аноним 29/01/16 Птн 22:34:18 #521 №638067 
>>638052
В общем, я хочу найти такие пары слов, в первом которых присутствует введённый мной кусок, т.е. c.
words = {
('a', 'b'): 'c',
('d', 'e'): 'f',
...
}

Но в данный момент это роли не играет, я просто Enter тыкаю, так что тамошнее условие не выполняется. res бывает равно [''] даже в первой итерации.
Аноним 29/01/16 Птн 22:43:44 #522 №638075 
>>638067
Если тыкаешь enter, тогда только в words['.'] смотри, больше и нет ничего.
Аноним 29/01/16 Птн 22:52:17 #523 №638086 
>>638067
И проверки на содержания '.' в любом случае будут False, если у тебя все элементы списки, даже если у тебя будет что-то подобное [['',' '],['.',' ']]. Ну ты понял.
Аноним 29/01/16 Птн 22:54:46 #524 №638091 
>>638075
Я перед всем этим специально пробегаюсь по words и удаляю пустые строки отовсюду.

>>638086
Ну да, с проверками тупанул. Сейчас исправлю, может в этом дело.
Аноним 30/01/16 Суб 01:17:38 #525 №638183 
Исправил. Заработало.
>парсить всякое говно, а реально крутые спецы сосут хуи на уёбищной работе за копейки.
Начало додумайте сами.
Аноним 30/01/16 Суб 13:29:13 #526 №638375 
elasticsearch vs solr под haystack.

Какой стул выбрать?
Аноним 30/01/16 Суб 14:04:23 #527 №638398 
>>638375
Смотря какие у тебя задачи.
Аноним 30/01/16 Суб 14:15:44 #528 №638404 
>>638398

Поиск для блога.
Аноним 01/02/16 Пнд 02:05:05 #529 №639937 
Когда перекат?
comments powered by Disqus