Это копия, сохраненная 12 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Прошлый: >>656084 (OP)
2.х или 3.х v1: http://legacy.python.org/dev/peps/pep-0373/
2.x или 3.x v2: https://wiki.python.org/moin/Python2orPython3
Deep into Python подойдет?
Спасибо.
Dive into Python*
"Классы" п1
Я не понял, что можно в объекте класса переменные(атрибуты) на ходу добавлять?
Или предлагают инициализировать переменные которые я создал в классе?
> что можно в объекте класса переменные(атрибуты) на ходу добавлять?
Да.
dir(obj) вообще есть несколько способов.
А что нужно то?
В self.__dict__ только собственные аттрибуты объекта. "все аттрибуты объекта" наверное включает аттрибуты класса(и его предков).
setattr тут причем?
Такое дело. Я учусь в шараге на электронщика. У нас программирования практически нет, а то что есть- преподают хуево. А с другой стороны я, дабы подрабатывать, самостоятельно изучал html -> css -> js.
Вот. И я хочу еще язык изучить, дабы серверную часть сайтиков на нем писать, да и еще чтобы, возможно, он как-то с основной специальностью увязался. Слышал, что питон, помимо веб-разработки, еще и в научных целях используется. А на счет электроники, применяется ли он в этой области?
Электронные схемы проектировать/считать/паять.
Я если честно сам еще не до конца понял, у нас по специальности предметы только в этом году начались.
>>665572
В сторону ноды я давно смотрю, это было бы быстрее всего, да и js мне приглянулся.
А нафига тебе в схемах программирование? Там есть специальный софт в котором их рисуешь, платы разводишь и т.п.
Ну если ты будешь какие-то девайсы паять, которые можно программировать, то скорее всего там C. Хотя есть micropython.
У меня в вузике кстати вообще как-то мало внимания этому уделяли. Нет, у нас была электротехника, где мы теорию простую сдавали и какие-то схемы составляли из кубиков на лабараторной. А вот что-то паять, сложные схемы делать, платы разводить - этого вообще не было.
Учился на АСУ.
Я тоже на АСУ, лол. И чем сейчас занимаешься?
Вот еще про С# думаю "есть один знакомый" подрабатывает на нем, чуть ли не 200к/сек. Ну и про java, ибо, как говорят, на нём все ололо-девайсы работают.
Изучаю плюсы и жалею о проёбаных годах.
>Первое. через setattr или self.__dict__
хуясебе как оно умеет.
но это же поди не тру добавлять атрибуты? нужно плодить сабклассы наверно
Python, Node.js - это всё веб. Использование их в других сферах весьма мало. Для электронщины тебе без Си не обойтись ну никак.
> И чем сейчас занимаешься?
Никогда по специальности не работал, начал быдлокодить на php на 3-м курсе, всмысле работать. Быдлокодил то я и до этого.
Подробнее пожалуйста. Мне вот плюсы кажутся говном из-за тыщи многабуквенных стандартов и <meta::StdVector<Map, String> Hui::Zopa>Raz::Dva>
питон это далеко не только веб.
слабый и ограниченный язык. Нет мощи. Он сложен, очень тяжел и очень опасен. Ничего серьёзного на нём не написать.
Легкий прототип для показа на презентации да - как и сделано было с ютубом и дропбоксом.
Но в конце концов всё всё равно пишеться на более мощныз языках.
А как насчёт гибридных приложений где критичные части на си, остальное на питоне? Например вроде бы hg так сделан.
С ютубом и дропбоксом наверное иная ситуация, чем у обычных кодеров, есть много денег и людей, их надо чем-то занять, плюс ещё надо экономить на кластерах. Да и инстаграм кажется ещё не переписали на жабу.
ну я не представлю как можно написать серьёзное огромное приложение на питоне.
Тут либо нужно отличнейшее мастерство программистов, а найти таких это очень затратное занятие.
Либо там наворотиться такое, что уже потом никто ничего не найдёт и не разберет. Все эти ленивые вычисления, функциональщина, эта типизация, где можно хранить в списке даже не просто элементы, а хранить чуть ли не базы данных и где-то несоторожное обращение и всё валиться.
Ну может и есть в мире ребята кто рискнёт выбрать питоне для проекта, но они надеюсь знают на что идут.
Область питона это легкий сайт, как говориться фаст старт.
Посчитать математику.
Ну и исполнить пару скриптов, простых.
Это кстати охуенные подход, благодаря этому у hg офигенный апи - легко писать хуки всякие и расширения.
>setattr для этого не нужен.
Есть подозрение, что при таком присвоении как раз метода setattr и вызывается.
Наговнокодить можно на любом языке.
Но на си++ написать серьезное приложение без кучи скрытых дефектов куда сложнее и займет куда больше времени.
Алсо надо писать тесты.
нет, на плюсах всё таки будет лучше. Скорость, большое компьюнити, тысячи библиотек. Надежность, поддерживаемость, заменяемость специалистов.
для веба - джава.
два языка покроют всё. Вы можете больше вообще нихрена не знать, но вы всегда будете устроены, сыты и довольны.
всё остальное уже так, на любителя и питон в их числе.
На джаве писать боль. Куча boilterplate и прочего. Но jvm годнота. Поэтому все и его собака используют scala. Или там groovy, kotlin и прочее.
Для системных приложений чаще не плюсы, а обычный си. Куда ни плюнь - си. Плюсы тоже, но реже.
На питоне ты берешь алхимию и на ней можно какие угодно запросы построить к любой бд. Веб интерфейс или rest api тоже лепится с пол пинка. Библиотеки для генерации отчетов в pdf/docx/что угодно есть. За месяц можно выкатить рабочую
Теперь джава - там конфигурирование всего этого начиная с hibernate на XML займет полгода.
Будет ли оно работать быстрее? Да нихуя, большую часть времени будут занимать запросы к БД.
на питоне это просто месево будет.
на джаве будет порядок, одно из другого будет следовать. Проверка типов, проверка методов. Будет архитектура.
Чтобы добавить таблицу надо только написать новый xml.
На питоне же надо перелопатить всё, от начала до конца.
> Проверка типов
Хуйня. В питон 3.5 добавили аннотацию типов, можешь хоть опроверяться с mypy или pycharm. Можно было и до этого, просто типы описывались другим способом.
> проверка методов.
Что это такое вообще?
> На питоне же надо перелопатить всё
Схуяли? ORM используй.
Вообще язык ну не причем, месиво можно сделать на любом языке.
проверка того, что метод возвращает и что принимает.
ну хз, чёт по вакансиям не видно, что прям массово люди кинулись всё на питоне писать.
Одни плюсы и джава.
Ну ладно. Питона популярность будет только расти, на западе ему сейчас учат во многих вузах и колледжах. И даже у нас кое-где.
> проверка того, что метод возвращает и что принимает.
https://www.python.org/dev/peps/pep-0484/
http://mypy-lang.org/
pycharm
но вообще это меньшая из проблем
> tipichny_krud
Если он типичный. Но, как правило, он нихуя не типичный. И придется всё перелопачивать опять.
ArrayList<Integer> a = new ArrayList<Integer>()
и всё, я могу быть спокоен, что там будут числа. Что я могу свободно делать что надо.
>Обычно все аттрибуты добавляют в __init__
ну и я про то же.
Выходит добавление "на лету" в __setattr это не более чем этакий выебон, в жизни так не делают?
Делают но в каких-то хитровыебнутых случаях.
>Питона популярность будет только расти
Насмешил. Он давно уже пережил стадию роста и теперь постепенно отмирает, превращаясь в язык для обучения. У нас во многих шарагах учат Бейсик - и что, сильно его популярность от этого растет?
Ну не используй их. Зато когда понадобится что-то такое ты заебешься это эмулировать.
>на питоне это просто месево будет.
>на джаве будет порядок
по что я ебаный нуб а и то представляю, что это зависит не от языка, а от того как процессы поставленны на производстве.
Он уже не умрет. Слишком дохуя где используется, слишком много кода на нем и библиотек/утилит.
Даже perl ещё шевелиться, вот кто начал умирать больше 10-и лет назад и вообще не развивался.
>по вашему это не опасная возможность языка?
>
a rm -rf * какой маньяк вообще придумал? Это вообще нахуя? Пизда всему
Хуй знает, может ты и прав. Но для меня плюсы и жаба это путь стать деревянным остолобом в очках и с лысиной, заканчивать проекты по нескольку лет и быть равнодушным к своей профессии слесарем без творческого начала.
>>665729
Я участвовал в разных проектах на разных языках, поверь, так можно сделать не только на питоне, на плюсах тоже можно и ещё легче даже. Разгадка проста: нужно уметь в декомпозицию задач, человек в принципе не способен дохуя удерживать в поле внимания.
>>665722
>слабый и ограниченный, Нет мощи, сложен, очень тяжел и очень опасен
У меня такое подозрение что ты не писал на питоне 5 лет. Что в нём сложного? Конечно он медленный, но всё остальное тобою сказанное противоречит чуть ли не полувековому опыту развития динамических языков.
>>665796
Ага, видимо плохой опыт у чувака был.
>>665791
>ооп детское. Магические методы? лол что?
Поясни.
>>665794
Если бы его не развивали, не сделали тройку, асинхронность, не запиливали pypy, то да, питон бы уже всё. Бугурт двоечников 3..2..1..
Ох, ну если уж припеклоу, то можно типы проверять вставляя assert. Для типизированных списков можно написать свой list. Можно использовать numpy для обработки численных массивов. Всё это на самом деле в питоне реализовано лучше, чем в остальных динамических языках. Типизация хоть и динамическая, но сильная, в случае чего у тебя вылетит экзепшен, даже без всяких ассертов.
На твою пикчу я уже отвечал в прошлом треде. 50к пакаджей протухшего говна, которое никому не нужно.
Ты послушай о чем он говорит. От этого протухшего говна зависит дохуя другого говна и так по цепочке. В итоге проекты не могут перейти на 3-шку или им придется патчить не только свой код, но и библиотеки, которые они не писали.
Вторую половину лекции он говоит про diversity. Что мало баб кодеров и надо взять в core team пару баб, пусть и нубов. И что мало негров. Они там совсем ебанулись на эту тему. В джанго тоже на djangocon какие-то бабы феминистки выступают говорят что их притесняют за то что они тян. Даже в ДС был недавно event django girls.
И чо? С пхп4 на пхп5 всё на перегонки портировали, никто не ныл. На крестах постоянно со стандарта на стандарт портируют и в хуй не дуют по этому поводу, говорят даже что мало, давай ищщо стандартов. С ES3 на ES5 перешли и не заметили, ES6 ещё в браузерах не заработал, а все на нём уже пишут.
Проблема была не в переходе с 2 на 3, проблема была в людях, которые считали нововведения незначительными, а то и вовсе неудобными. В таких как ты. Форкнули бы уже двойку и развивали дальше, пока не постигнула бы вас участь перла.
Потому что в энтерпрайзных языках вроде php не ломали обратную совместимость(а надо было бы)
Ещё как ломали. Другое дело что в питоне сломали болезненную фичу: возможность байтово хакать строки, куча быдлокодеров сразу же заныло и засопротивлялось. Раковые опухоли надо отрезать. В итоге у нас няшная чистая тройка вместо ебанутого синтаксиса как у жс и крестов.
Уже вернули в тройку такую возможность азазаз по многочисленным просьбам.
Не помню. Но там что-то меняли в поведении кодеков и вроде бы раньше всякие функции работы со строками с bytes не работали.
http://blog.thezerobit.com/2014/05/25/python-3-is-killing-python.html
Двойка калеченая
Тройка - для обучения школьников. Двойка - для работы.
Армина сразу нахуй.
Второй по сути ноет что дорого библиотеки портировать. Посту почти два года.
Заебали ныть. http://py3readiness.org/
Просто посмотри правде в глаза, питон3 навсегда останется экспериментальной бетой. Нечетные версии - эспериментальные.
История напонимает perl6 или php6.
Адекватные люди сидят на двойке, а потом выйдет питон4 полностью обратно совместимый с python 2.9
Хорошая такая экспериментальная бета, на которую уже перенесли 95% актуального кода. Предлагаете к питону4 назад на двойка-like всё переносить? Называете себя адекватными людьми? Лол, ну удачи.
А ведь есть ещё pypy, и даже pypy3. На него в разы меньше пакаджей, многие сишные переписываются под cffi. А наши двоечники всё ждут обратной совместимости со своим говном времён кобола.
> На него в разы меньше пакаджей
Что это значит. Он совместим с cpython если там нет C-кода.
Вот есть ещё всякие cython че там незнаю.
>Что это значит. Он совместим с cpython если там нет C-кода.
>Вот есть ещё всякие cython че там незнаю.
Я нихуя не понял.
> А ведь есть ещё pypy, и даже pypy3. На него в разы меньше пакаджей
Любые пакаджи обычного питона там работают, если в них нет кода на си
Положить в /usr/bin или /usr/local/bin скрипт yoba, который будет делать что-то типа "import yoba;yoba.main()". И пэкэдж yoba положить куда-нить в /usr/lib/python3/dist-packages/ или куда там ставяться они
#!/usr/bin/env python
print('ETO TY?')
А потом да, в /bin, ну или куда там ещё твой PATH указывает.
Не в /bin. В /bin чисто системные команды, а не пользовательский софт.
В /usr/bin или лучше в /usr/local/bin
По долгу службы работаю с графикой, сейчас стоит задача сделать оценку баланса белого на изображении по ступенчатому градиенту (есть 6 квадратов разного оттенка серого). Как я понимаю мне нужно определиться с областью и провести ее анализ для получения гистограммы (средний уровень белого, отклонение и мб другие параметры). Дайте советов мудрых, какой функциональный инструментарий можно использовать для решения этой задачи.
> ступенчатому градиенту
> гистограммы
Мы тут даже таких слов не знаем чувак. Спроси на linux.org.ru в разделе форума development
Но вообще pillow и numpy http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.histogram.html
ИМХО, имеет смысл, если тебе интересно разобраться, как оно все устроено/хочешь какую-нибудь супер-оригинальную фичу, которой нигде нет. Если хочешь просто без затей сделать игру - конструкторы лучше. но возможно, что это у меня просто руки кривые и мозгов нет
А еще pygame плох тем, что из-за особенностей питона сделанные из него экзешники будут много весить, но это уже не проблема pygame.
Когда простенький платформер весит как что-то серьезное - это не смертельно, но раздражает и да, даже сейчас не у всех безлимитка
ОН ПРОСТО РЕШАЕТ ПРОБЛЕМЫ ПЕРЕД НИМ ПОСТАВЛЕННЫЕ
не сказать что очень быстро внутри него всё крутятся, не сказать что вот прям из коробки, но в целом я за овер 2,5 месяца программирования от абсолютного ноля до того, кто туда-сюда все свои текущие с недостатком автоматизации проблемы или уже порешал, или на пути к этому.
Наверняка всё что я накодил это лоховской уровень, я даже сторонние модули не читаю перед использованием, но это уровень достаточный для среднего и мелкого отечественного бизнеса.
Из нахуяренного: простенькая система для работы с дилерами на веб2пу: просто таблица с авторизацией куда могут дилеры добавлять чё им надо, а я проставлять "предполата, оплата, заказ, на складе, доставка/самовывоз и прочие мелочи"
На складе валяется айпад с симкой и доступом к табличке, так что кладовщик тоже ставит что кому дал.
Люди и я тут же получают нотификейшн через е-мейл о статусе изменениях и тд.
Целая куча разной хуйни от тупорылого сортировщика корреспонденции упавшей на почту до моего текущего проекта - парсинга яндекс пробок что бы вдуплить где мне билборды покупать что бы как можно больше водятлов их увидело и разглядело.
Вот в этом всём питон очень хорош и кайфовый, что подходит даже таким как я. А то что чистые программёры наверняка найдут куда более изысканные и целевые инструменты - это понятно, но не могу сказать что это именно недостаток питона.
Ну не, там похоже зависит от бинарника какой-то левой проги, не просто pip install.
Ты хочешь на чистом питоне написать конвертер графических файлов? Даже без всяких numpy?
> где можно хранить в списке даже не просто
Кстати, с аннотациями типов можно указывать, что может быть в списках для проверки типов
from collections import Counter
text = open('filename.txt').read()
newfile = open('foo.txt', 'w')
for word, count in Counter(text.split()).items(): newfile.write('%s - %d\n' % (word, count))
newfile.close()
tutorial на оф сайте
Есть даже на русском http://djbook.ru/rel1.8/
Если ты работал с каким-нить MVC фреймворками и ORM на php то вообще всё понятно будет сходу. Да даже если не работал.
Погружение
2 scopes of django
Ещё бы
Львов охуенен
Местные куда цивилизованнее и похуистичнее, чем всё то быдло которое ты встретишь по пути во Львов
Будешь за косарь руб в сутки там царем и повелителем, а если ещё не начнёшь всякую хуйню неинтересную о политике базарить - какая-нибудь пани согласится погреть твоего питончика
Ну кацапам то понятно, а вот мне как Киевлянину? Просто никогда на таких конфах не был. Туда имеет вобще смысл ехать человеку с уровнем между энтри и джуниор?
>>666721
Да знаю я что Львов охуенен. Меня сам смысл PyCon-a для новичка интересует.
os.path.expanduser(:3)
Заманиваешь меня во Львов, да? А потом гопнешь в подворотне, обоссышь и заставишь своего питона гладить.
О, данке за развернутый ответ. Тогда буду расматривать захочется или нет побухать на выходных.
О чём спор? питон 3 вымрет как пхп7, никому не нужно то, что в продакшн не запихунть
О чём спор? питон 2 вымрет как делфи, никому не нужно неподдерживаемое легаси дерьмо.
Пытался поставить пакет(или как это зовется) анакондас, выбивало ошибки, типо не может добавить в путь и еще что-то, питон поставился - а оболочка ipython - нет. Имя у меня кириллицей. Может ли это быть причиной? Или же я не могу найти ipython? Как мне переименовать и не проебать все установленное?
Подскажете?
Сорян, не сразу нашел актуальный тред.
В итоге у меня что-то поставилось, сам питон - точно установился, может я этот айпитон не могу найти? Вообще папка появилась с ним, но там только templates внутри, по локалхосту не заходит.
Сработало, спасибо!
Алсо, для комбинирования путей с домашним каталогом конкатенация не обязательна.
os.path.expanduser('~') # output: /home/yoba
os.path.expanduser('~/Documents') # output: /home/yoba/Documents
Я так и не понял втф анаконда, если честно
ipython. - питоновский шелл более удобный с плюшками автодополнением и тд
ipython notebook - сорт оф документы гугл драйв для отображения сразу на а4 всякого говна вычислительного вперемешку с данными и тд. Наверное удобно, но привычки нету.
pip - менеджер пакетов
Анаконда тогда выходит типа такой автоматической средой для запуска-подбора пакетов-среды так сказать исполнения?
http://fablabs.ru/wiki/index.php/Anaconda
Я про это, в итоге попробую завтра переименовать юзера.
Или лучше создать еще одного, думаю получится юзать со своего основного?
Нехуй там делать, посмотришь на ютубе потом. Тем более какой-то провинциальный pycon там и докладов интересных не будет.
> бизли/тот-негр-с-пучикаго выступает, чтобы в рот смотреть
Дай ссылочку. Хочу в рот посмотреть.
> но так-то я вообще в ДНР живу и за него же топлю
Нахуя, ты ебанутый? Я думал таких людей в IT не бывает, тех кто там бы жил и болел, а не издалека поддерживал.
_____________##_##_____________
____________######____________
___________#######____________
__________########____________
_________#########____________
__________#######______________
___________#####________________
___________#####________________
___________#####________________
___________#####________________
___________#####________________
__#####___#####____#####_____
_#######__#####__########___
#########_#####_#########__
#########################_
#########################_
_#######################___
___#########_____#######_____
____#######________#####______
______####_______________________
..............00,,,,,,,0,,,,,,00
.............0,,,,,,,,,0,,,,,,,,,0
............0,,,,,,,,,,0,,,,,,,,,,0
...........0,,,,,,,,,,,0,,,,,,,,,,,0
...........0,,,,,,,,,,,,,,,,,,,,,,,,0
...........0,,,,,,,,,,,,,,,,,,,,,,,,0
...........0,,,,,,,,,,,,,,,,,,,,,,,,0
............0,,,,,,,,,,,,,,,,,,,,,0
.............000000000000000
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.........000,,,,,,,,,,,,,,,,,,,,,,000
.......00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00
......0,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
.....0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
....0,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
...0,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
...0,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
...0,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
....0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
.....0,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,0
..............00,,,,,,,0,,,,,,00
.............0,,,,,,,,,0,,,,,,,,,0
............0,,,,,,,,,,0,,,,,,,,,,0
...........0,,,,,,,,,,,0,,,,,,,,,,,0
...........0,,,,,,,,,,,,,,,,,,,,,,,,0
...........0,,,,,,,,,,,,,,,,,,,,,,,,0
...........0,,,,,,,,,,,,,,,,,,,,,,,,0
............0,,,,,,,,,,,,,,,,,,,,,0
.............000000000000000
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.........000,,,,,,,,,,,,,,,,,,,,,,000
.......00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00
......0,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
.....0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
....0,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
...0,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
...0,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
...0,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
....0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
.....0,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,0
https://www.youtube.com/watch?v=MCs5OvhV9S4
https://vimeo.com/53039281
Бля, негра двадцать минут искал. James Powell. Короче, просто вбивай их в ютубе и смотри. Не дают скучать, шуточки-хуюточки, не тянут резину.
Спасибки
if name = 'main':
Что это означает?
"Классы" п3
Получилось сделать аттибуты по именам методов.
Как теперь вызывать методы имея только их "имена" в виде строк?
Чет я там такого не вижу в пункте 3
Вообще getattr(obj, method_name)()
ну я сначала наделал атрибутов из методов, а теперь когда обращаются к аттрибуту хочу звать метод.
я знаю только название метода, как к нему обратиться?
альзо, если
class C()
то если я просто в основной программе обращусь к С(именно к описанию класса, не объекту) то как он себя ведет?
Вообще тебе нужны http://stackoverflow.com/questions/17330160/how-does-the-property-decorator-work
Наверное
не могу понять почему нужно было закоментить self.__setattr__(new_attr,0)
То что оно бесполезно это одно, но почему с ним не работает?
Ведь позже переопределяется поведение на вызов этого атрибута, как оно умудряется нуль свой просунуть?
>http://stackoverflow.com/questions/17330160/how-does-the-property-decorator-work
ебать, I didnt ask for this...
Буду разбираться.
На всякий случай уточню, п4 в "Классах" в квизе по ссылке выше есть строка for i in Reg
это реализовано при помощи property?
__getattr__ вызывается только если такой аттрибут не найдет в объекте(классе/родительских классах).
если тебе надо чтобы дергалось в любом случае есть __getattribute__, но лучше её не использовать(он будет вообще на любой чих дергаться)
Нет. Короче. property это хрень, чтобы аттрибуты на самом деле вызывали функции, но обращаться к ним как к артибутам можно было.
В п4 хрень в том, что он хочет чтобы итерироваться можно было по самому классу, а не инстансу. Это значит что надо с метаклассом пердолиться.
Это задание ебанутое, в реальной жизни никто с этими метаклассами не пердолится. Если ты не пишешь очень хитровыебнутую библиотеку типа django orm.
>>667314
Кек, не сразу сообразил сам. Короче:
Потому что __del__ срабатывает когда ты удаляешь все ссылки на объект и он перестает существовать.
У тебя же ссылки на объект 2 - одна называется c, другая - внутри этого списка
т.е. del не удаляет сам объект. Он удаляет ссылку на него, которая называется "c". Сам объект удалиться сборщиком мусора, когда на него будет ноль ссылок.
т.е. ты мог бы написать
a=A()
b=a
__del__ сработает только когда ты удалишь обе ссылки - b и a.
В данном конкретном случае может помочь модуль https://docs.python.org/3/library/weakref.html
Справедливо.
Однако почему если напрямую вызвать с.__del__()
чтобы сработал Base.remove(self) то оно пиздит что ничего ремув не может тк этого в списке и так нет
Скорее всего получается что оно у тебя 2 раза удаляется. добавь print внутрь __del__ чтобы понять что происходит.
Ну тоже странно. Оно аж 3 раза пытается удалить.
Я так понимаю что оно в __del__ еще чтото делает помимо того я ее явно прошу, возможно само себя зовет.
что, признаюсь, неочевидно
как будто оно не запись в листе удаляет а сам объект.
Оно в __del__ удаляет объект из списка, который является последней ссылкой на этот объект и из-за этого вызывается __del__ опять. Такая хуйня.
А они в новых версиях питона всё больше и больше такого добавляют. Enum который через магию на метаклассах работает. Аннотации типов эти тоже
выходит когда я вызываю с.__del__ я уничтожаю "с" И вызываю метод __del__
я думал что если я переопределяю метод то он делает только то что я говорю. Ну тоесть удалить никого уже не может.
Нет, c уничтожаться не должен. Но ничего и не происходит, если его вызывать он удаляет из списка этот объект и всё
закоментил Base....remove(self) и просто проорал от происходящего
но тогда схуя много раз вызывается __del__ ведь ссылка на объект сохраняется в с?
Впрочем, уже видно(выше писал) что удаления из списка тут ни при чем
Если ты просто вызвал __del__ как на моем скрине и ничего больше не делал, очевидно, что __del__ вызывается один раз, иначе оно бы вывело ошибку, потому что объекта в списке уже нет.
Даже и логично
Ну i это тоже ссылка на объект, да. Хм.
если я переопределяю __methodname__ то мое "переопределение" просто добавляется к изначальному коду или заменяет его?
На примере с __del__
__del__ это изначально пуской метод по дефолту он нихуя не делает.
Нет, не добавляется. Ты должен из переопределенного метода вызывать метод класса-предка явно.
Обычно это делается через super
http://stackoverflow.com/questions/222877/how-to-use-super-in-python
а если итератор вызвать много раз,то удалит оно всеравно только один раз.
Это уже интерпретатор умничает?
Оно не должно __del__ вызывать, потому что у тебя ссылка сохраняется на объект как минимум в этом списке самом.
Только я подумал что разобрался, как это ебаное перекрестное удаление снова до меня добралось.
Анихау, благодарствую за твое время, но мне нужно спать, надеюсь ты тут часто ползаешь.
> many in the Python community believe that __del__ is evil and shouldn't be used.
Лучше использовать with. И вообще сборщик мусора в cpython работает так, но это не гарантированно даже в нем.
А вот в каком-нить jython он работает вообще по-другому. Я с этим столкнулся когда делать что-то вроде
for f in files:
..x = open(f).read()
и так на куче файлов. В cpython файл сам закрывается т.к. объект типа file сразу собирается сборщиком мусора в такой строчке. В jython же - нихуя, у меня получилось maximum open files reached. Потому что сборщик мусора срабатывает не всегда, а по какому-то хитрому алгоритму, если его явно не дергать.
И неизвестно как работают сборщики мусора в pypy, ironpython и прочих. Лучше не расчитывать на какое-то определенное поведение.
Ох. Я про этот случай даже читал в какой-то доке, pypy кажется. open(f).read() - зло, with наше всё.
Ага. Про __del__ даже в доках сипитона пишут что оттуда доступен очень ограниченный набор действий. Первая ошибка у тебя потому что ты явно вызвал del как обычный метод, и на второй del объекта в списке уже нет. Вторая ошибка видимо от того что на момент сборки мусора глобальный скоуп уже вычищен.
Вот щас читаю, дохуя неявных случаев всяких
> Circular references which are garbage are detected when the option cycle detector is enabled (it’s on by default), but can only be cleaned up if there are no Python-level __del__() methods involved.
https://www.youtube.com/watch?v=xjikvIHjvHs
А aiohttp каклом :DDDD
Ну к джанге прибиты гвоздями, orm, формы и прочее. А в том фреймворке их легко заменить на другие. Сейчас на flask аналогично можно делать.
>прибиты гвоздями
Не прибиты. Импортируй SQLAlchemy какой-нибудь и используй. С формами ещё легче.
Не представляю зачем это делать. Мне наверное даже нравится что никто это не шатает в джанге, совместимость, батарейки, все дела. Ещё я как-то трогал проект на джанге и алхимии вместо родной орм, и ниче, работало всё. Формы вроде бы стандартные.
Это часто преимущество, а не недостаток.
Анончик, хочу научиться писать красивый, асинхронный код в 3.5. Годных гайдов для нихуя не знающих об асинхронности не нашёл. У тебя есть что-нибудь по этой теме?
Эм. А что там писать-то? Прежде всего доки по asyncio смотри. Иногда ещё бывает нужно в гитхабе посмотреть исходники этого asyncio, но это в крайних случаях уточнить то что в доке не описано.
Питон, по дэфолту запакованный всевозможными либами для матана и науки. Что не понятного то?
Да ничего не нужно. Со всем можно походу разобраться.
>user_password
OAuth для кого придумывали? Я конечно понимаю что не весь функционал через него работает, но статус-то скорее всего таки да.
https://github.com/RichardVoid/VK_simple_status/blob/master/main.py#L150
OCHE дохуя буков для обработки времени. Проще надо, намного. Последнюю цифру взять кстати n % 10
Для OAuth нужно открывать страницу браузера. Понимаю, что нужно для безопасности это переделать, но пока не знаю как. Пока что такой говнокод. Предупреждал же, что недопроект.
> + os.sep +
os.path.join же
В принтах всяких str.format лучше использовать чем через + всё писать.
> RuTime
Для этого была готовая либа где-то
А вообще норм выглядит, молодец.
Не нашёл либы. Возможно плохо искал. Все знакомые крестовики, и используют python только для всяких своих приготовлениях для инжектов, поэтому ничего о человеческих либах не знаю.
Спасибо, переделаю.
https://github.com/RichardVoid/VK_simple_status/blob/master/main.py#L23
Поменьше повторений надо. Вместо os.sep можно os.path.join использовать.
Один раз напиши
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
и всё.
И да, вот говоришь что для Oauth браузер нужен, а сам капчу разгадываешь сохраняя в файл. Не знаю как вк, но фейсбук например может выдать специальные долгоиграющие токены для вот таких случаев. Надо стараться делать так чтобы капчи не было совсем, то есть следовать их рекомендациям. Можешь например небольшое окно с селениумом запускать чтобы токен взять.
Данное API работает как бы с "мобильной версией" сайта ВК + VK очень странно просит капчу. Происходит это в самый ненужный момент, поэтому и гадаю. Очень долгоиграющий токен VK выдаёт только разработчикам standalone приложений, после запроса к модераторам. На мою фигню они подобный токен не выделят. Видел инструкцию на Хабре, как этот токен можно спереть из крупных, опенсоурс приложений для вк, но не рискнул, ибо не совсем это честно.
https://github.com/RichardVoid/VK_simple_status/blob/master/main.py#L72
Вот здесь тоже глупость имхо. Просто число часов там сделай, причём через float() строку гони.
https://github.com/RichardVoid/VK_simple_status/blob/master/main.py#L93
Можно обойтись без переменной, сразу return.
Это такой руль для полноценного браузера. Я уже подзабыл оаутх, но совсем недавно занимался селениумом. Насколько помню там надо просто открыть определённый стартовый урл, затем ждать пока урл не станет определённого вида (всё как для standalone кстати), там в фрагменте урла будет токен, нужно взять его и закрыть браузер. Короче могу тебе напилить если ты мне напомнишь урлы и какие куда там параметры передать.
https://github.com/RichardVoid/VK_simple_status/blob/master/main.py#L118
Вот здесь else raise надо. Ибо оно у тебя втихаря затупит если экзепшен был, но не авторизация. Ещё хорошая практика делать exit(1) в случае ошибки. Это позволит писать башскрипты учитывающие завалы в твоей проге.
>>667506
Доки под питон обычно сложно найти сходу.
http://selenium-python.readthedocs.org/
Вот так лучше:
new_date['year'] = '{} {}'.format(item[1], self.__year(item[1]))
Спасибо за подсказку про остаток от деления. Рефакторнул и получил в 3 раза меньше кода.
Я тебе даже больше скажу по этой теме, есть всего несколько типов склонений слов по числительным. То есть универсально нужно всего около трёх функций, выдающих только окончание слова. По числовому спектру специальный случай только десятки.
если n // 10 % 10 == 1, то: минут
Иначе для n % 10:
0, 5, 6, 7, 8, 9 минут
1 минута
2, 3, 4 минуты
Где про подобную математику можно больше почитать(не только про склонения слов)? Моё математическое образование оставляет желать много лучшего.
А что математика? % это остаток деления, // это целочисленное деление (в отличие от / который выдаёт в общем случае float).
5 % 2 == 1
5 // 2 == 2
7 % 4 == 3
итд.
Я уже на SO прочитал. Но всё равно спасибо. Чтож, будем думать как переделать снова.
есть ли какая-то рекомендация, как лучше называть переменные которые потом возвращаются из функции?
PEP8 Naming Conventions прочитал, не нашел
сам называю их out или res (out больше нравится), но это сцуко 3 символа ведь. использовал бы О, но PEP8 запрещает
спасибо
Насколько я знаю - нет. Разве что, логично было бы называть их абстрактными именами того, что ты возвращаешь
вот это было ахуенно. благодарю
Или в ред хат устривайтесь питонщиками в чехию
Го PEP на переменные - эмодзи оформим. Только для илитарных пацанов и стремящихся.
Как же хочется либу. Чтобы можно было погладить по её нежным модулям, прижаться к классам, почувствовать её методы, а она бы конструировала метаклассы под конкретную задачу. Мы бы сидели, писали и коммитили.
да ты бы и собаку закоммитил
Если документация сгенерирована с помощью сфинкса, например. Но там статика и поиск работает. Можно хоть на гитхаб.io закидывать.
Чё?
Не, готовое всё. Архивы с хтмлами.
статикметоды это говно, либо обычные методы, либо функции
Какой модуль импортировать, с чего начать, как авторизоваться?
>import configparser
import json
data = json.load(file)
json.dump(data, file)
>os.path.exists
os.makedirs(path, exist_ok=True)
>RuTime
http://ideone.com/7RZwv6
еще манипуляции с файлами заменить на pathlib чтоб совсем тру было
Ассоциируй .py файлы с python.exe, че ты, как маленький? Правой кнопкой, свойства и т.д.
можешь пример какой-нибудь кинуть, как этим модулем vk пользоваться?
Он не слишком стар? выглядит заброшенным на github
Ничего не понимаю. И это продакшен. Говно какое-то. Пидоры, блядь. Блядь, Гвидо с сообществом им дали интерпритатор на окна. Пиши, пиши свои круды в Окнах, блядь, "не хочу! хочу жрать говно!" Что такое? Это программирование? Это программирование? Суки. Мудачьё. Программисты. Dive into Python прочитали. Говно жрут. Пидоры блядь ёбаные.
CRUD — (create, read, update, delete)
На перле.
Таришь каталог, делаешь base64 yoba.tar.gz, записываешь как строку в install.sh, на клиенте из скрипта строку разворачиваешь в тар, распаковываешь.
Спасибо! Хорошая идея.
В общем, в PyQt5 есть всякие layout'ы и вопрос в том как сделать так, чтобы один виджет заполнял 20% QVBoxLayout, а другой 80%?
setup.py и вся хуйня
Упакуешь потом в deb/rpm
Конфиги в домашнем каталоге должен создавать скрипт при запуске, копируя их из /usr/share
Хочу писать много раз так:
with TempPipe() as fname
Но чтобы родительский темпдир был один, создавался только по требованию и удалялся при выходе из всех использующих его with.
Сейчас примерно так всё работает:
@contextmanager
def TempPipe():
..with TemporaryDirectory() as tempd:
....pipefile = join(tempd, 'pipe')
....mkfifo(pipefile)
....yield pipefile
Оно в целом не сильно критично, но интересно может ли питно сделать такое красиво.
>А нахуя
Не обошлось без традиционного тебя. Ну вот извращенец я, люблю создать 10к пайпов по утру, прикола ради.
line.endswith(('.html', '.htm'))
Угу сам недавно узнал эту фишку.
Пока на ум приходит лишь гуглопочта, на ведроиде там как-то сделана синхронизация, но чет гугление на вскидку ничего не дало, и я хз, дают ли они такую возможность.
Я просто пишу программу на питоне и другие треды не читаю. Вдруг тут кто ковырялся с синхронизацией.
Таки да, про облачные диски забыл.
Я сейчас yandex disk юзаю, удобен тем что можно по webdav монтировать диск, не надо специального клиента даже.
До этого был dropbox но почему-то перестал работать на мобиле, видимо у меня слишком старая версия андроид.
Если допустить, что моим говноприложением будут пользоваться за бугром - заставлять их регистрироваться на яндексе не самый лучший выход.
Чет не могу найти статистику, какой самый популярный. Это дропбокс же?
Если твоим приложением кто-то будет пользоваться мог бы хостинг купить за 90 рублей в месяц, а не заставлять пользователей где-то регистрироваться.
А так наверное дропбокс или google drive.
Пока не уверен, что взлетит. И опыта во всем этом 0. Может, под премиум на ведро и куплю отдельный хостинг.
Есть ещё беслпатные всякие штуки. Типа https://aws.amazon.com/free/ и многие хостеры дают месяц бесплатно.
Через папку дропбокса это делать - квинтэссенция костылей. Слишком все зависит от того, есть ли на устройстве этот дропбокс и его расшаренная папка.
Нужно, грубо говоря, слать файлик куда-то, и скачивать каждый старт программы. Ничего лишнего не устанавливая.
Правда, если делать на отдельном хостинге - я пока хз, как аккуратно написать закачку\скачку файлика, + регистрацию. С имеющимися облачными дисками и API это явно дело нескольких строк, а не целого велосипеда.
С одной стороны, велосипед - с другой навык.
Да и если тот же гугл ВНЕЗАПНО прикроект свой диск - мир не перевернется.
В любом случае, шишка пока не стоит сношаться с хостингом.
> как аккуратно написать закачку\скачку файлика+ регистрацию
Как как, по http. rest api можно запилить.
Или использовать готовые https://developers.google.com/drive/v2/reference/files/insert https://www.dropbox.com/developers/reference/api
Вообще говоря, на гугл я смотрю как-то с недоверием, обязательно выкинут какую-нибудь хуйню типа полностью платного доступа к API переводчика.
У яндекса с ограничениями еще. На личное пользование и гугл мог бы и оставить с ограничениями. На эксперименты и разработку хватило бы.
Одна радость - должны навернуться все приложения в ведромаркете аля СУПИРПЕРЕВОДЧИК НА 100500 ЯЗЫКОВ ДЛЯ РАБОТЫ НУЖЕН ИНТОРНЕТ.
А с другой стороны, все модули на питон тоже полетели, которые использовали гуглопереводчик.
Лел. Так гуглодрайвом пользуется не приложение как таковое а пользователь посредством приложения. В отличие от того же переводчика.
Но ведь если каждый пользователь посредством приложения задудосит гуглодиск, анально покарают же приложение, а не пользователей. Зря API-key, что ли.
Кстати, с api-key проблема, особенно, если они платные. Как спрятать их от всяких хитрых пидорасов? Вытащить модуль же и расковырять, спиздить ключ и начать творить с ним всякое раз плюнуть же.
Кстати да.
>задудосит гуглодиск
Снова лел. А причём тут собственно приложение? Если оно явно не сломалось и явно не дудосит от всех пользователей сразу, то дудосит только конкретный пользователь.
Платные апикеи должны использовать твои сервера. Клиент должен общаться и с гуглом и с твоим сервером одновременно и не содержать никакой секретной информации.
Понял. Спасибо за помощь.
Фтп всяких серверов для андроида более чем
Нужно преобразовывать вводимое в число. Изначально там строки. Например
a = int(input('Введите число (а)'))
Ну, то есть, '1', введенное через input - это не число (int), это строка (str).
Питон охуенен тем, что накодино на нем дохуя и слепить скрипт пришедший тебе в голову 5 минут назад можно за 20 минут гугления и 5 минут ковыряния.
Когда все эти чудо-языки смогут предоставить ту же скорость - тогда да.
math.sqrt(.....)
Вводи такие abc, чтобы корень не извлекался из отрицательного числа. 1, 7, 2, например.
однако работает, а как теперь сделать, чтобы со всеми числами?
И если нет - какая есть ЧИТАБЕЛЬНАЯ кроссплатформенная альтернатива?
Только не предлагайте xml - это же пиздец.
>yaml, cson
Все это тегомесиво. Эти же файлики нужны, в первую очередь, чтобы тупой пользователь мог взять и поменять циферку, не ебя себе мозг копанием в этих тегах. Или удалить кусочек лишнего, и это ничего не сломало чтоб.
ini и даже text куда лучше с этой задачей справляются, ИМХО. Если же не брать ориентир на тупого и ленивого пользователя - то вообще хз, зачем сохранять настройки в xml, yaml, cson - извращение прям какое-то, pickle или shelve куда лучше же.
И все же, скрины смотрю, в yaml секции только через древа делаются?
Хуже по читабельности, чем
[categoriya]
parametr = zx
в INI, как по мне.
+ не у всех есть подсветка, хуй отличишь имя переменной от значения, : слишком малозаметен.
Что еще за режим онлайн? С каких пор IO потоки зависят от расширения файла?
Я сначала подумал, что нельзя создать через open файл с раширением py. Можно.
Этот вариант и правда получше тегопараш по читабельности.
Вот только если не установлен интерпретатор - файл с раширением py не откроется сразу в блокноте. + его засосет в exe при сборке.
А exe не открываются на линуксе c тычка.
Хз, как на все эти стулья присесть.
На пинуксе они открываются с тычка, только надо chmod, прав им дать. Это как расширение сменить, только линуксу похуй расширение.
>получше тегопараш по читабельности
Кря-кря. Что за теги ты там нашёл для меня всё ещё загадка.
>если не установлен интерпретатор
>файл с раширением py не откроется сразу в блокноте
Шо?
>его засосет в exe
Шо?
bitsync и пр. - твое p2p разочарование
>>если не установлен интерпретатор
>>файл с раширением py не откроется сразу в блокноте
Допустим, есть windows. На нем нет питона. Как отреагирует на двойной щелчек по py?
>его засосет в exe
cx_freeze засовывает все, что указывается в import в exe. То есть, теряется возможность файл редактировать ручками. Разве что создавать файл настроек уже после первого запуска.
Не отреагирует конечно. И на линуксе если нет питона всё так же.
Короче я примерно понял что тебе надо. importlib смотри. Если не взлетит, то совсем крайний случай eval.
Как побороть?
Как будто импортирование чем-то отличается. Можешь хоть в конфиг джанги вписать rm rf.
Я тебе могу так в твоей винде сделать, что у тебя даже .txt не откроется. Все эти связи можно менять что и чем открывать.
А сохранять json в txt религия не позволяет? json.load все равно, какое расширение у файла, лишь бы там понятный парсеру текст был.
Типичная домохозяйка боится дальше рабочего стола зайти, кто менять-то будет? Не буду же я ради этого срать в систему своими ключами реестра.
Типичная домохозяйка может только одноклассники открывать и, дай бог, компьютер выключить. Ты реально думаешь что твоё поделие будут использовать домохозяйки? Тем кому надо будет, они найдут способ открыть конфиг и поправить его.
Конечно, у меня даже есть парочка в зоне видимости.
Про то, что им не понадобится лезть в конфиги - валидный аргумент, конечно.
И все же, если INI такое устаревшее и ненужное говно, почему его используют все игры, например?
Бля, да ты даун что ли? Если ты волнуешься за пользователей, то сделай gui настройку.
INI имеют легко достижимый потолок. Это dict по сути, строка->строка. Ну ладно, секции, но это всё.
С ямлом тебе например не придётся кастовать каждый чих в int/float/bool. И вложенности любые, и списки, и всё что душе угодно. Я тебе уже говорил что его можно как ини держать
key: value
key: value
key: value
key: value
Будет та же хуйня.
Хуй знает почему какие-то там игры используют ини. Бля, я наверное раз или два в жизни правил конфиги играм. И чессказать мне похуй был формат, просто по аналогии заполняешь и всё. Надо ини - бери ини, хуле ты до нас-то доебался? Спросил конфиги как делать чтобы современно и не xml, тебе подсказали, всё. Нахуй ты тут доказываешь что ини это заебись?
[v for i, v in enumerate([2, 3, 5, 7, 9, 11]) if i % 2]
блять, я идиот. Спасибо
Я не доказываю. Просто мысли вслух.
Пожалуй, ты меня убедил с yaml и txt.
Спасибо, сейчас попробую.
Норма, но в репозитории держать не стоит. Добавь это говно в .gitignore
Нормально, но держать в репозитории их не надо. Гугли gitignore. На гитхабе есть файлы для питона уже созданные.
>hh.ru
>python 9893 resumes, 631 vacancies, 15.7 per vacancy
>haskell 304 resumes, 11 vacancies, 27.6 per vacancy
file = open('file.png', 'rb').read()
text = base64.encodestring(file)
print(type(text))
Возвращает byte
Ну давай мне кабанчиком нотепад экзе на чистых плюсах профессионала накатать уговори
Нет разницы между скачиванием .pkg с сайта питона или обновлением через homebrew?
Так в документации и написано, что возвращает bytes, не?
Encode the bytes-like object s, which can contain arbitrary binary data, and return bytes
В общем, делай bytes.decode(text) и всё должно получиться.
base64.b64encode
Как в PyQt в QGridLayout сделать так, чтобы виджеты располагались слево направо, без всяких растяжений на всю область, независимо от количества виджетов?
Чтобы в моем случае все было по ширине как на первом пике.
Ну взгляни на джанго flatpages.
Плохой вопрос. В гриде ты сам задаёшь размерность и веса по горизонтали и вертикали. Что ты имеешь ввиду?
Я уже отказался от грида.
Опишу ситуацию.
В приложении есть несколько вкладок. На каждой - просто таблица, состоящая из QLabel + QLineEdit. Но на разных вкладках их разное количество. Хочу сделать так, чтобы они все ровно выглядели.
Пикрилейтед почти похоже на правду, только ширина инпутов разная и ширина колонок тоже, но почти незаметно. В идеале хотелось бы, чтобы это все было одной ширины, красиво.
Может лучше сделать таблицей? QLineEdit будет вылезать по дабл клику. Так проще с точки зрения программирования и проще пользователю (легче искать).
Ну не, лишние клики ни к чему. Тем более не совсем представляю как это. Можешь привести пример из других программ?
>директорию в домашнем каталоге и ссылку в /usr/local/bin
Тебе оно точно нужно глобально, чтобы все юзеры могли пользоваться? Можно жи PATH юзеру дописать, прямо в его bash_profile, и никаких судо не требовать.
Я вот кстати держу глобальный npm для всяких coffee, babel, etc, но что-то сейчас понимаю что оно нужно только моему пользователю.
Нет разницы между скачиванием .pkg с сайта питона или обновлением через homebrew?
Программа для врачей, не у всех есть интернет. Если бы я был is адептом, то конечно сделал бы все на ноджс. Но я питонист, поэтому вот
К чему ты это?
Как в excel. Или делай пустые виджеты.
Ну же хакерюги, подскажите.
Чтобы заманить джавистов
@ - это декоратор
Про себя я называю свойства "умными атрибутами". Суть в том что при обращении к объекту, проперть выглядит просто как переменная. Можно даже настроить так что ей можно будет выполнять присваивание. Внутри же у тебя там какой-то код. Например ты создал объект который принял число обозначающее количество секунд. Объект можно наделить свойством weeks, days чтобы при обращении к ним возвращалось это количество секунд, переведенное в соответствующие единицы.
Скорее всего какая-то хуёвина для псевдоограничения доступа к атрибутам объекта. Мол, объявляешь сеттеры, геттеры в одном месте, а затем только ими и пользуешься. Хуй знает зачем.
Чет поискал работку на апворке по скрапингу
там такая хуйня вида
>перебашить весь гуглпоиск
собрать все названия кампаний на такую-то тематику
каждый сайт каждой кампании переебашить на получение контактов и прочей хуйни
все это захуярить в эксель и за это ты получишь 50 бачей
Что за хуйня? сложнаа сложнааа блять
Да иди пивасик дуй с пацанами, чо ты как лох в мониторы пялишься, чухан блять.
Я так и знал, что питон учат только школьники и в треде этом сидят такие же.
Ну не тралируй плис.
Пояснить не можешь и пытаешься съехать на сарказме.
Впрочем, чего еще ожидать от питонщиков на дваче.
Еще раз напиши.
>А какие камни подводные?
У меня не было никаких.
Но я нуб и хуйло, задачи и приемы у меня были соответсвующие
Мне кажется это либо достаточно тривиально, если можно просто собирать разную хуйню "похожую" на контакты, ну там емайлы/телефоны в изрядном отрыве от контекста. Но тогда выход будет изрядно бессмысленный.
Либо нужно писать какойто блять скайнет и нести отсвественность перед человечеством.
тем что не надо писать скобочки
Честно? Да, удивлен. Я не читал шапок тредов и ориентировался только на картинки.
Не могу понять как все это устроить.
asyncio
классная картинка
Мне нужен однозначный и четкий ответ.!
На второй картинке изображен школьник, учащий питон, а на первой - домохозяйка.
В прошлых тредах такого не было.
Там была змея в очках на белом фоне с книгой дайв ин пайтон или тип того.
Ну змею точно помню.
Что эта за хуйня http://pastebin.com/raw/mYHpS1hE ,
Какой-то пидр залогинился на мой сервер и запустил эту поеботу.
Памаги
Первое.
Nais)
Ну и отличненько, мне просто на диплом
-Стоит ли учить питон после дэльфи?
-Вам до питона как раку до китая. Этот язык слишком гениален. Т.к. он включает овердохуя всего.
-А тогда почему его так рекомендуют в интернетах?
-Тут уже решает маркетинг от гугла. И вообще начинайте с языков си
Стоит ли слушать своего препода и идти учить языки си или ослушаться и пойти учить питон?
Выеби препода в сракотан и скажи, что это маркетинг от двача.
Выучить питон с нуля до нубоуровня реально за 1 месяц
Выучить плюсы с нуля до нубоуровня реально за 2 месяца
Неужели ты так охуительно занятой студент, что не можешь потратить меньше 3 месяцев что бы осилить оба языка и самостоятельно сделать выбор?
Питон - для велосипедистов которым похуй как оно чё крутится там внутри абы крутилось. Нет, конечно пропаганда и пеп8 учат другому но судя по коду всем похуй.
Плюсы - для задротов любящих понимать чё происходит и как именно оно происходит
И то, и другое хорошо для своих задач. Задачи эти, как правило, совершенно разные.
ПЕРЕКОТ https://2ch.hk/pr/res/670244.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/670244.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/670244.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/670244.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/670244.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/670244.html (М)
Блять не туда, соре
Попробовал установить как обычно, через pip. Не может собрать, ибо не находит файл "cgraph.h".
Ладно, гугление привело к тому, что мне ещё и обычный graphviz нужно ставить. Как отдельное приложение, блядь. С замусориванием диска всякой хуйнёй. Просто потому, что эти блядь идиоты не додумались, блядь, что можно, блядь, засунуть все исходники в папочку с дистрибутивом пакета. Ненавижу, блядь.
Ладно, скрепя сердце я поставил этот ненужный мусор на свой ЖД(буду я ещё место на ССД под какую-то хуету отдавать, ага, щас, он у меня для хороших библиотек). Поставил флаги компиляции пакета, чтобы учитывал папки из этой мусоробиблиотеки. И конечно, блядь. Undefined reference при сборке, бляль. PyIO_BaseType не находит, блядь.
Погуглил, народ нихуя не знает, что с этим делать. Не знает, что это за зверь. Пиздец какой-то, блядь. Просмотрел исходник, этот PyIO_BaseType используется только в паре функций для проверки на ошибку. Закомментил эти строки нахуй. Собралось.
Подключаю либу - DLL Not Found. Охуеть просто, приехали. Прописал в PATH путь к этому убогому мусору по имени GraphViz. Вроде прошло.
Попытался нарисовать граф - а вот хуй мне! В либе ещё и ошибка и нужная функция не работает по причине вроде "No Key". Хуй знает, я уже не помню.
Вот серьёзно, блядь, хоть где-нибудь в мире питона ещё есть подобное убожество?
Какой курс?
Можешь попробовать прекомпиленый пакет поставить. http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygraphviz
Я так впаивал склконнект, для 3.5, который становиться не хотел.
Питон лишним не будет, даже для разработки на C++.
Наебашить каких-нибудь тестов побыстрому. Собрать базу для тех же тестов. Проанализировать данные. Не всегда есть свой ручной DevOps, знаешь ли.
Спасибо, попробую. А вообще, какие альтернативы есть для pygraphviz? Пробовал networkx, но он не умеет рисовать петли. А петли мне критически важны.
Matplotlib же не умеет графы рисовать автоматически.
Основная проблема в том, что полей получается переменное количество а разбития на строки нет. Хотя структура есть и ее таки можно будут вычленить регулярным выражением.
Вопрос как в это выражение передавать куски этой строки.
Настоящий пример строки в https://dpaste.de/CZYu но упрощенно:
aaXabXabcX, где X это некий маркер конца строки(но понять что он конец строки можно будет только в регулярном выражении). В реальном примере это поле "Instructor" + переменное количество имен, затем начинается новая строка.
Если я правильно понимаю то regex если ему дать всю строку вычленит только первый случай и забъет дальше хуй.
Посылается причем, когда отжимается кнопка мышки после клика по кнопке.
Ах да, button.setCheckable(True) стоит. По идее сигнал и должен слаться без этой строчки, потому что кнопка сразу отжимается. Но здесь она остается нажатой.
Таки норма.
Скорее всего это цель дудоса. Алсо, немношк проиграл с кода.
Вообще, это нескомпилированный код, удали нахуй сишные компиляторы с сервера и запрети их установку, лол.
Алсо, ради интереса можешь поискать на сервере файл a.out, это если он не переименовывал его в компиляторе, или не ебу какой, если переименовал.
Ты заебал. Прочти уже документацию.
Надо реализовать фичу. При загрузке файлов на джангу, она пропускает имена файлов через хеш и уже под такими хешеами их сохраняет. Нужно чтобы можно было скачать файл под оригинальным именем под которым он был загружен.
Не понял. По-моему фишка в том, что __name__ объявлен при запуске скрипта по дефолту.
Какие хеши, норкоман? Джанга использует оригинальное имя, затем только дописывает к нему рандомы если такой файл уже есть.
>>671105
Проблема либо в селери (что маловероятно), либо в твоём коде воркера (что очень вероятно), либо в редисе (что маловероятно), либо в конфигах всего вышеперечисленного (что очень вероятно).
Перефразирую - на текущем проекте джанга настроена так что принудительно хеширует имена файлов перед их сохранением.
Ну допустим. Раздаёшь ты их всё равно через проксю. То есть тебе нужно где-то сохранить маппинг хеш-имяфайла и как-то заставить проксю это съесть. Насколько помню имя файла при скачивании задаётся хедером.
>>670991
Поздно, блять. Хостер заблокировал
Как превентировать такое? Пароль на сервере вроде не был "123querty"? Хотя рута не отключал.
fail2ban и SSH-keys без пароля для рута помогут ?
Хорошо, но мне все равно интересно как это решается по-нормальному.
"По-плохому" я это решил так: в проекте файл хранится в виде отдельной модели (это уже так и было) в которую записывается в т.ч. и оригинальное имя. Соответственно я просто создаю вьюху которая получает запрос с айдишником нужного файла и отдает его.
Ты уверен что пароль брутфорсом подобрали? У тебя там наверное древний штабильный дебиан ещё крутился.
Был у меня такой случай, правда сервант я принял уже с кучей говна, вина не моя. Оказалось что там был оче старый ПЭХЭПЭМАЙАДМИН и в инете любой шкальник мог нагуглить длинный список уязвимостей. Укосил нахуй это говно, сменил все пароли, проверил файлы, и как рукой сняло.
Другой был случай, я обосрался обнаружив в рутхоуме чужой перлоскрипт. Правда потом приглянулся, это проверка на уязвимость была. Глянул в код, у меня даже софта такого не стояло, который там проверяли, успокоился, понял что это админы хостинга проверяли.
ставь бубунту второй осью и нет проблем с пакетами, через пип и пакетный менеджер можно загрузить дохуя и больше.
import os
import time
# 1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
source = ['"C:\\My Documents"', 'C:\\Code']
# Заметьте, что для имён, содержащих пробелы, необходимо использовать
# двойные кавычки внутри строки.
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = 'E:\\Backup' # Подставьте тот путь, который вы будете использовать.
# 3. Файлы помещаются в zip-архив.
# 4. Именем для zip-архива служит текущая дата и время.
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'
# 5. Используем команду "zip" для помещения файлов в zip-архив
zip_command = "zip -qr {0} {1}".format(target, ' '.join(source))
# Запускаем создание резервной копии
if os.system(zip_command) == 0:
print('Резервная копия успешно создана в', target)
else:
print('Создание резервной копии НЕ УДАЛОСЬ')
Что за команды здесь появились, типа import, target_dir ?
Почему эта задачка у меня не работает в PyCharm'e ?
> Ты уверен что пароль брутфорсом подобрали?
Нет.
> У тебя там наверное древний штабильный дебиан ещё крутился.
Да.
Мне ещё повезло что я заметил это. Он видимо забыл потереть историю. Сука, блядь!
Была такая же хуйня, только там меня сломали через редис без пароля.
Нет
Кодекадеми, Доусон, Лутц, Укус Питона, Синк пайтон - начни с этих, не выёбывайся
Ну я ж тебе и написал как по-нормальному. Редис себе заведи с персистентностью, к нжиниксу прикрути модуль https://github.com/openresty/redis2-nginx-module#redis2_query - наверное что-то такое
fname = redis2_query get filehash; - так оно не заработает, инфа 100, но идея надеюсь ясна
add_header Content-Disposition 'attachment; filename="$fname"';
То есть урл к файлу у тебя остаётся хешем, но имя файла подменяется хедером.
И такое решение кстати даже круче чем дефолт джанги, так как позволяет повторение имён файлов.
Хочу видеть перед собой результат, который можно пощупать.
Заебали уже эти фибоначи и прочая абстрактная еботня.
В голову ничего не лезет, т.к. сижу болею.
Может есть какая-то книжка, с интересными проджектами-задачками для ньюфагов, ну или читщит какой-то?
Спасибо.
Где же ты раньше был? Пилил бы вместе с аноном.
Это рабочий скрипт на основе задачи из укуса. Не знаю, почему у тебя с ней сложности.
Ни в коем случае не шкварься об это говно
Высер уровня Карнеги и всяких коучеров нлп только с пионом но без объяснений толком только кудкудахи ВОТ Я ТАК ДЕЛАЮ И ТЫ ДЕЛАЙ
Но Карнеги же более-менее толковые вещи писал. Про отношение к людям, про нужность эмпатии, "пытаясь достать мёд не опрокинь весь улей".
А что там не так в этой хардвее? Запросили же, посложнее и побыстрее, значит подразумевается что разжёвывать и класть в рот пациенту не надо.
Как в pyqt5 просто добавить возможность скролла к QHBoxLayout? И самое главное, чтобы это скролл никак себя кроме скролле не проявлял. А то я добавляю QScrollArea и полуаются какие-то гигантские отступы повсюду, невозможно работать!
Подозреваю что твой горизонтальный бокс ужимается до ширины окна, а когда ты добавляешь туда скролл, он растягивается до нормальной ширины по контенту. Скорее всего NIQAQUE это нормально не решить без редизайна UI.
Окей, будем искать. Спасибо!
Можешь ещё черзе sys.path.append("Folder/")
подергай всякие size policy там
ПДФ то еще говно для парсинга если он изначально криво сформирован. С ним лучше через OCR работать.
Я тоже нихуя не понимаю, прочитал книги типа доусона, дайв инту питон и т.д. А что дальше делать то?
Да не, там не все так плохо.
Вопрос скорее был по приемам регурярных выражений.
Более менее решил уже.
sorted_x = sorted(dict_name.items(), key=operator.itemgetter(1))
print(sorted_x)
Вот здесь допустим.
Делал несколько фриланс заказов на python3 + PyQt5 (один даже с quamash + asyncio). Сегодня, кстати, фичи добавлял по просьбе заказчика.
Не совсем понял что ты хочешь, но если уж сильно что-то экзотическое, то лучше делать на qml.
Есть сайт с которого мне нужно скачать страницы в виде хтмл, но они весят много
У сайта есть мобильная версия, но только в виде приложений на ios/android. Как можно залезть туда и начать скачивать оттуда?
Советуют указать мобильного клиента в хедере, но я не знаю что это такое и как это делать
Посоветуете что-то?
Скотина тупорылая, там же написано, что тебе нужен минимум сервис пак 1 и другие какие-то апдейты, которые питухон использует. Обнови систему, поставь апдейты доступные, а потом уже ставь питухон. Есть ссылка на лог файл, попробуй кликнуть и прочесть, что там написано.
Почему это записывает в файл в две строки?
2
97
k считывается с файла в который записана одна 2
Откуда перенос строки?
Как записать 3 числа в одну строку?
Это копия, сохраненная 12 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.