Это конечно тупо, но мне спустя 2+ месяца ежидневного говнопитонинга только дошло почему в классе пишут __инит__ и что это вообще за хуйня ну и прочие __магические__ хуйни
>>631616 Я не он, но ты прав. Но щито поделать, если ничего не нравится, и надо как то зарабатывать себе на существование? В детстве в меня заложили неверные приоритеты, и теперь вместо того чтобы идти к успеху, мне милее сидение на диване как бивис и батхед, или тупое валяние дурака, как в других сортирных комедиях 90 - 00-х гг.
>>631622 А это тяжело и рутинно. Кто ж захочет имея полное образование погромиста внезапно менять профу на рабочую, да притом тяжелую? Я распиздяй, но не идиот.
>>631627 > капчевание хуй там. за капчевание не платят. скорее всего тебя ждет работа в потогонной конторе какой-нить где надо на потоке кучу проектов делать и на тебя пять менеджеров орет.
>>631629 Такая работа ждет нормальных кодеров. А быдлокодер только будет сидеть и капчевать 5/7. На любой работе. Я побывал на разных и везде капчевал 90% (в среднем) рабочего времени в среднем, и получал за это заслуженную минимальную зп.
>>631630 Не бойся на счет нюфань. Если кто то и будет способен отнять твой дошик, это так или иначе случится. А если не плющит человека быть погромистом, то даже если на каждом столбе будут висеть объявы про бесплатные курсы "стань сеньором помидором за 2 недели", он все равно не пойдет на них.
>>631634 И эникеил, и погромировал, но все как то через жопу. У меня есть огромная простыня с моим "рабочим опытом" тут в одном треде, если интересно, могу поискать.
>>631635 Да я не боюсь ничего. Просто со мной в конторе брали иногда джунов полных нубов которые очень просились из жалости. Готовы были им помогать, объяснять если че. И почему-то всегда они просто сидели и тупили. Или просто втыкали в код безрезультативно или капчевали. В итоге их просто увольняли и драма была.
>>631638 Не интересно, потому что у меня так же. Опыт какой-то есть, но для достойного резюме он не годится.
>>631635 Я где-то слышал высказывание, которое мне понравилось: стань лучшим в любой области где ты хорош. А если я люблю задумчиво вдыхать амбре своих яиц, которые не подмывал 3 дня, как в этой области стать лучшим?
>>631639 Все правильно делали. Рано или поздно такие отсеиваются. Если конечно у вас не гос контора, которая существует как качалка денег из бюджета, а работники в ней только для прикрытия.
>>631631 Нет, как раз нормальный кодер может подыскать себе непыльную работенку, где позволить капчевать, а в 20% оставшегося времени быстро всё сделает. Потогонная система во всяких веб студиях и аутсорсах там дофига проектов и везде что-то делать надо. И каждый день-два что-то надо сдавать какой-то результат. Аналогично если какой-то скрам внедрен.
>>631643 Ну а нахрен вообще мучиться если это "не твоё". И сами страдают и коллектив как бы подводят. Можно в техподдержку пойти или там эникеем или даже админом. Или тестером.
>>631645 А известно ли нормальному кодеру, что на работенках где можно капчевать и делать все по быстрому и платят копейки? Серьезно копейки. Не больше 20-30к. Нормальный кодер не пойдет на такое, ящитаю.
>>631648 Лично за себя скажу, что кодинг > админство. В детали углубляться не буду, но мне вот так легче. Ну и временами на меня все же находит желание что нибудь пописать и почитать. По работе вообще ничего не задают.
>>631650 > на работенках где можно капчевать и делать все по быстрому и платят копейки? Серьезно копейки. Не больше 20-30к. У меня всё наоборот. Я работа в типа веб студии и там было дохуя работы. Простой но дохуя и дергали всё время. Платили мало как раз типа 20, потом 30к. Потом я работал в конторе, напрямую не связанной с программированием. Надо было их сайт и онлайн проект развивать. Там можно было делать мало, а платили в 2 раза больше. Потом я работал в конторе где был один большой проект, госзаказ так скажем. Там тоже спешить особо не надо было, платили ещё больше и были ещё и перспективы роста до соточки если бы там дольше проработал. Потом я работал над проектом где типа скрам и каждые 2 дня выкатывали новую задачу. Платили соточку но работой загружали неплохо, зато удаленно.
>>631651 Ты описал такие должности и уровень, до которого быдлокодерам как до китая пешком. И не надо ахуительных историй, что ты просто пришел, ничего не знал и там всему научился Надо различать ещё нормальные непыльные работенки и такие работы, где от кодера нужен только диплом из шараги. В первые не попадут распиздяи, а нормокодеры не пойдут в последние. Предлагаю завершить нашу беседу, пока не потерли весь офтоп
Еще вопрос про qt4. Не получается привязать один метод из родительского окна к нескольким кнопкам, но находящимся в разных виджетах через self.connect(self.button, QtCore.SIGNAL('clicked()'), parent.func)
Начинает выдавать
AttributeError: 'NoneType' object has no attribute 'func'
При привязке к одной кнопке все работает.
Разделять на несколько отдельных методов для каждого виджета не хотелось бы, ведь они делают практически одно и то же.
И туда же. Можно ли передавать аргумент методу в этих привязках?
>>631707 А что такое parent? Объект этот существует? Почему он nonetype? > Можно ли передавать аргумент методу в этих привязках? Через functools.partial?
>>631710 Parent - атрибут, содержащий ссылку на родительский виджет. Уже разобрался. Я не передал self при создании новых окон. А аргумент parent в __init__ виджетов был None, по умолчанию.
Сап, питонач. Я тут понял, что хоть и прогаю на питоне, но все равно его не знаю. Подскажи какой фреймворк выбрать, чтобы подтянуть скилл? ну и чтобы был востребован на рынке
пацаны, посоветуйте кокой-нибудь токой РЕСУРС по питону, чтобы мне не сидеть листать хуйню про то, как работает ебучий фор, для умственно отсталых, а чтобы сразу по конкретике поясняли за всякие более нетривиальные вещи языка. например, как так вышло, что функция может возвращать несколько значений и как это сделать, и всё в этом духе. (может, на самом деле это тоже не менее очевидно, чем фор, но я имею в виду чтобы объяснялось что-то, чуточку более, хз, практическое что ли.) тока не говорите про документацию, охота чтоб прям пиздец сжато и тематически было.
>>631734 > функция может возвращать несколько значений и как это сделать Ты про такую фигню для умственно отсталых что ли? def zaebis_func(x): y = x*2 z = x+2 return y,z
Как называется эта хрень, когда лист, например, передается в функцию со звездочкой и распаковывается на отдельные аргументы? Хочу почитать про этот момент подробнее, но не знаю, как запрос к гуглу сформулировать.
>>631840 Я признаться чуть в ахуе как оно у него без лагов работает. Ясен пень у меня комп динозавр-кор2дуо2ггц-8гб и хубунта сверху, но блядь неужели дело только в компе, а не жавахуете на которой на кой-то хуй всё подряд сейчас пишут?
>>631854 Жава говно для педиков, уже больше 10 лет сколько раз сталкиваюсь, столько и думаю об этом. Искренне желаю ведроиду перейти целиком на пидерастичное гоу, свифт, хоть сраный обжект си
>>631872 Конкретнее говоря, нужно создать виджет, и на нем отобразить данные, которые создаются от 2-30 секунд. При этом, во время этого ожидания виджет должен быть уже создан и активен, чтобы была возможность потыкать кнопочки, например.
class CustomWidget - допустим, у него есть метод, который при вызове запускает парсер сайта, и отобржает на виджет.
Если запускать метод из __ini__ class CustomWidget - все зависает на кучку секунд, и потом виджет создается с уже готовыми данными. Так и должно быть.
Казалось бы, нужно сначала создать виджет, и после вызвать этот метод извне. Но вызов метода из родительского окна, после setCentralWidget(CustomWidget(self)) дает тот же эффект.
Первый раз врываюсь в тред на двачах, не хуесосьте сразу.
Хочу написать ОРМ на питончике (для диплома). В общем, головой понимаю, что должно быть и как надо сделать, но целостности картины нет. Подскажите какой-нибудь гайд или книгу, где эта хуебень разбирается.
>>631915 Кроме того не хотелось бы ради того, что я через threading.Thread могу сделать в одну строчку, через QTread делать чуть ли не на целый модуль.
>>631876 Блокируешь же гуи тред. Тебе надо создать этот виджет изначально пустым, потом через сигналы и слоты собственно отправлять/получать данные из отдельного треда и уже заполнять свой виджет.
>>631894 Problem Solving with Algorithms and Data Structures Не гарантирую что то что ты ищешь гарантированно в этой книге(не читал ещё), но полистай, её очень хвалят да и по смыслу вроде подходит
>>631948 В реальности на java пишут очень сложные гиганстские проекты которые на чем угодно будет тормозить. В том же pycharm куча анализаторов кода, эвристик всяких. Если их отключить - всё будет летать.
Питоны, а как вы относитесь к DI? Заметил что многим похую DI они во всю используют monkey patching. Приятно конечно сосредоточится на написании кода а не на хуймиллионе фабрик/инъекторов, но как дела с тестированием?
>>632455 Dependency Injection не имеет смысла в питоне. Точнее, не имеет смысла выделять это как какую-то особую технику. Динамика же + условные импорты, например, что ещё тебе надо?
>>632455 >DI >monkey patching Чёт ты перепутал тёплое с твёрдым. DI это прежде всего отказ от инстанцирования зависимостей внутри класса. Зависимости просто приходят в конструктор, тем самым позволяя легко их подменять, в том числе на мок-объекты для тестов.
Манки патчинг, несмотря на негативное восприятие большинством этого термина, не является чем-то особенно плохим. Конечно строить ОРХЕТЕКТУРЫ на нём нельзя, но пофиксить какую-нибудь библиотеку изредка таки можно.
>>632508 Я больше не для себя даже, а сколько для мамы. Что-то фундаментальное на 1000-2000 страниц ей точно не подошло бы. Хотя думал и сам прочесть, так как недавно щупал питон и мне он понравился.
Пацаны, как отсортировать даты в таком виде? 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
Неделю ебал вола пытаясь понять как работает ебучая Джанго, нихуя не врубался, злился и считал себя аутистом. Поставил фласк и буквально спустя 3 минуты первого попавшегося туториала врубился как оно всё в нём работает и тд. Жаль что для фласка нет автогенерируемой админки из коробки и прелестей автоматического "ну а в бд-из бд оно как-нибудь само", но это мелочи на фоне того что блядь всё остальное ОЧЕНЬ ПРОСТО
>>632677 Да может и ничего, но "с наскока" зайти не удалось, а читать на иноземной мове 2 scoops of django мне было очень лень, при чём мову-то я на болтательном уровне знаю, но забивать голову и переводами, и самой джангой выше моих сил. А тут пиздык-пиздык вьюз.пу всем рулит и педалит безо всякого говна, хочешь - модели припиздячьивай, хочешь - хуй забей, вариантов масса и да я разумеется понимаю что это не только самый большой плюс, но и самый большой минус
>>632682 Собстивенно в django тебе тоже только urls.py и views.py нужны, остальное не обязательно. Да и вьюхи ты можешь в самом urls.py задать если очень хочется, тогда и views.py не нужен.
>>632684 Мне проще на английском техническую хуйню читать. Потому что при переводе надмозги часто неправильно переводят и гадаешь что там в оригинале имелось ввиду.
>>632683 >>632682 Платиновые отмазки знающих мову, по две рандомных отмазки на тред:
Мову то я знаю, но на родном читать приятней Мову то я знаю, но боюсь ошибиться в терминах Мову то я знаю, но боюсь неправильно понять Мову то я знаю, но лень переучивать термины Мову то я знаю, но я патриот и читаю только на русском Мову то я знаю, но я уже начал на русском и будет путаница Мову то я знаю, но учить питон и доучивать мовву одновременно - сложно Мову то я знаю, но я устал Мову то я знаю, но не хочу забивать голову Мову то я знаю, но мне лень напрягать башню Мову то я знаю, но ...
>>632687 Может и так, но в совокупности оно всё равно ебануто получается. Всё джанго держится на каких-нибудь тайных атрибутах классов, из которых построено, и в итоге тебе постоянно надо лепить хуйню типа "хочешь в админке картинки к ImageField? - ПРОСТО БЕЗ ЗАДНЕЙ МЫСЛИ ДОПИШИ ВОЛШЕБНУЮ ПЕРЕМЕННУЮ ImageField.listview= True В КЛАСС и всё нахуй чудом станет как и задумывалось. А хоть где брать список волшебных переменных инб4 сорцы - хуй знает.
>>632691 Блядь, ну очевидно же что ни по питону, ни по фреймворкам инфы на русском недостаточно и один хуй приходится читать на мове. Анальную клоунаду разводить тут удумал, ишь какой.
>>632693 Энивей, я свято и не безосновательно (вкатился же) верю что во Фласк вкатиться проще чем в Джангу. Скорее всего Фласком я не ограничусь, и спустя какое-то время снова попоробую ворваться и в Джангу тоже, но пока мне и фласка "за глаза".
>>632695 А какую ты orm использовать будешь? Потому что обычно берут алхимию а она сильно сложнее джанговской. Формы? wtforms какие-нить? Там магии хватает тоже.
>>632731 А как эта ссылка помогает сделать выбор? Разве что... > Possible features for 2.7 > Nothing here. [Note that a moratorium on core language changes is in effect.]
>>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.
Я так понимаю, значение self.arg берется в момент создания привязки и больше не меняется? Как исхитриться и брать актуальное значение, ведь self.arg меняется?
>>632793 > Я так понимаю, значение self.arg берется в момент создания привязки и больше не меняется? Да > Как исхитриться и брать актуальное значение, ведь self.arg меняется? Передавать туда self, а уже внутри self.func читать self.arg. А учитывая, что это self.func там self уже есть, так что partial не нужен
Чот я проебался с наследованием моделей в джанге. Понадобилась мне еще одна модель, которая от имеющейся отличается наличием дополнительного поля. Наследовался, зарегал в админке, проверил - сохраняет все корректно. А потом гляжу, а у меня вьюха отображает обе модели в списке. Лезу в базу, а там унаследованная модель сохранилась, как табличка с FK на id родительской + новое поле. Как заставить джангу сохранять новую модель в отдельную таблицу?
>>631913 А что интересует? Хороший фреймворк (точнее клей для будущего фреймворка%)), если под веб не писал,то лучше начать с чего-то более простого. Для меня пирамида 2й фреймворк после django (иногда надо что-то с нормальным ормом)
>>633129 >то переписывание не поможет Негодный экстрасенс >define "как человек" не порождать ненужные промежуточные листы, как у тебя делают мап и фильтер. оно раза 2 тормознее, и в несколько раз прожорливее по памяти. на тысяче-другой элементов в коллекции ты прозреешь
>>633166 третьепитонопроблемы 3-шка нестабильное эксперементальное говно. нечетные версии нестабильные. нормальные люди сидят на двойке, перекатятся когда выйдет стабильная 4.0
>>633176 При этом читаемость кода хуже. Даже блять в длину строки гитхаба не влезает. > s.split("\n") есть str.splitlines() на разных системах перенос строки по-разному делается
>>633173 > в ссылке на ideone 3-я версия > Я про двойку nuff said. > Py3k не особенно где есть Лолд, уябывай, клоун. >>633176 Потому что ты не делаешь stftime, наверное. что за дибилы в треде, ведь так всё было хорошо сначала
Проводил сегондя собеседование - пришел какой-то чудик, который в тестовом задании вместо unicode() испольщовал str() и вместо xrange написал range. Сказал ему что перезвоним.
Tак в drf запросить только первый/последний элемент? Сделать свой get_queryset(), который, если в запросе есть нужный параметр, будет возвращать только один элемент?
>>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()
>>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
Парни, а поясните мне простым языком: В питоне всё объекты. Всё ли? Ну т.е. во 2м print был не объектом, в третьем - стал. Для любого объекта грубо говоря мы можем дописывать свои свойства, через функции. Ну типа def str_add_shit(str): return str + 'shit'. Так типа, или я что-то упускаю? Классы это такой способ навязать кучу свойств куче объектов Все эти self.{имяфункции} это и есть спсоб декларации того, что у объектов такого класса по имяфункции теперь есть одноимённое свойство.
>>633608 Потому что это бессмысленно, если только ты не будешь заниматься реверс-инжинирингом, но даже в этом случае эти "задачи" далеки от реальности . С таким же успехом ты можешь на бумажке написать 5 рандомных цифр, а потом пытаться найти в них закономерность. Лучше с checkio какого-нибудь задачек порешай.
Вот есть у меня связь в Джанге много к 1. Есть пост, к нему идут комменты. Сука, как мне запросить количество коментов к этому посту без создания кастомного фильтра для шаблона? Ну, т.е. чтобы это все во вьюхе работало, и через запрос в эту вьюху и выводилось количество комментов. Вчера полдня убил, так нихера и не смог сделать.
антоны-питонобоги, вопрос к вам создал свой класс, как мне переопределить операцию умножения вида: инт экземпляр класса ? пример: >>> 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 #ошибка. как переопределить метод для такого вида?
>>634054 Я к тому что может тебе None вставлять в список вместо этого класса. Хотя я незнаю, что ты именно делать. Может и нет. А так называй как хочешь. Placeholder звучит подходяще.
Пацаны. Начал тут обмазываться питоном сразу по хардкору по AByteofPython. Т.к. начал я это делать в дороге, то читал я на планшете, параллельно запуская скрипты в QPython3.
Так вот, собственно, в чём вопрос. В книге пишут, что если документировать объявленную функцию, при запросе function.__doc__ выдаст эту самую документацию, но, как видите, что в ideone, что в QPython3 вместо этого мне пишут хуй None.
На домашней же ПеКе пашет как надо. Почему вообще возникает такой глюк с документацией? Что еще ждать в таком же духе от Ideone?
Django. Имееются две модели. Никаких foreign key, правда в одной из этих таблиц имееются ключи, указывающие на primary key'и второй таблицы. Как в сериалайзере добавить в первую таблицу филды из второй, по какому-то id-шнику?
>>634302 > Никаких foreign key, правда в одной из этих таблиц имееются ключи, указывающие на primary key'и второй таблицы А зачем так? Почему не сделать foreign key? > какому-то id-шнику Что это значит?
>>634309 Просто этот ключ может содержать id и из другой таблицы. > какому-то id-шнику Это значит, что в первой таблице есть id, которые иногда ссылаются на другую таблицу, и есть поля, которые нужно заполнить, взяв их из второй таблицы. Вот как это сделать по-человечески. Foreign key не подходит в данном конкретном случае.
>>634346 Я в начале думал, что просто сделаю какую-нибудь sql процедурку и ей просто заполню нужные мне филды, но тут есть встроенный механизм, почему бы и не воспользоваться
>>631494 (OP) Господа, с чем может быть связан такой нюанс в Django. Есть страница, к примеру: 2ch.hk/b На ней ссылка на тред, к примеру: 2ch.hk/b/12 Когда я перехожу из /b/ на страницу треда- всё в порядке. Когда я заполняю формы- всё в порядке. Однако, когда я нажимаю "Отправить сообщение"- то страница обновляется, и в строке браузера уже не 2ch.hk/b/12, а 2ch.hk/b// Что за чудеса?
>>634364 Отправляется. Функция возвращает не просто html, я не так выразился. Она возвращает рендер. return render(request,'imageboard_app/thread.html', {'form':form, 'posts':Anon_Post.objects.all(), 'file_form':file_form})
Анончики не понимаю по чему все жалуются на пучарму. i7 - 720(да, да самое первое поколение 2010 года) 8гб оперативы (1600 скорости) и убунта 14.04Ю особо никогда не замечал тормозов за pycharm'ом.
>>634395 Кстати, извините за оффтоп, гейбук реально тема? Сколько у него, так сказать, срок эксплуатации? Т.е. время, когда ты не ощущаешь тормозов, лагов, всякой херни с железом?
>>634398 Ага. Тема. В эксплуатации с 2012, только что ногами не пинал, а бук как новый. >тормозов, лагов, всякой херни с железом Ноль. Автономность, отзывчивость гейоси - 10/10. много лет красноглазил бифор, от винди не могу не блевануть
>>634412 прости невужество батюшка, в питоне почти 5 лет ( с него начинал обучение в 13, так что реальной пракьтики особо нет), но что значит 'generic' и почему его брать по максимому)
Аноны, как по-быстрому освоить синтаксис питона. Есть два дня. Нужен только синтаксис без всяких объяснялок основ программирования, парадигм и прочего говная сам java-макака
>>633587 На тебе однострочник, не мучайся: print(min(map(int, input().split()))) Маленький разбор: input().split() получает на ввод строку и разбивает её по пробелам на список отдельных элементров, map(int, input().split()) применяет функцию int (преобразование в целочисленную переменную) ко всем элементам полученного с ввода списка, min ищет наименьшее число, print выводит на экран. Не благодари.
>>634487 Вот сейчас гуглил и к тому же выводу пришел. Kivy как-то не очень для десктопа подходит что ли. Или мне так кажется просто. Но я на нем запили игру, а чтобы выстроить кнопки в ряд очень муторно
>>634520 PyGObject -биндинг к GObject, который жи есть гнутая реализация ООП с подсчетом ссылок для PlainC. Gtk - почти Linux-only ГУЙ-библиотека. Никакого Material design как у гугла на ней не сделать. Декларативности как в qml тоже не завезли.
>>634537 >гимп Когда я работал на венде, там он выглядел как говно. И хоткеи в ымперской раскладке не работали. >твой браузер Safari >слинкован с ГТК из Хромого давно выпилен
>>634532 > Linux-only ГУЙ-библиотека. Толсто. Наиболее популярный питоноский кросплатформенный гуи софт - deluge, gajim, exaile - на pygtk. Под прыщи на нем вообще тонны популярного софта. А на pyqt софта чуть более чем нихуя. Я знаю только spyder, eric и tortoisehg, но это не популярный софт, а узкоспециализированный и не самый удачный(например гуи для hg мне больше нравится gwsmhg, а он на pygtk). > на ней не сделать. Можно дохуя чего сделать, фреймворк очень гибкий и мощный. > Декларативности как в qml тоже не завезли. Завезли, glade для этого и ui файлы.
>>634786 Я в базе создаю триггер, который отрабатывает на изменение в другой таблице, а в мою записывает определенные филды. Вообщем, разобрался я со временем, мой save() отрабатывает. Спасибо, анон, здоровья тебе и чая
>>631494 (OP) у меня тут тупой вопрос. Я когда-то ходил на курсы по программированию и решил одну задачу функцией eval, хотя надо было просто завернуть функцию в функции 1000 раз. Дак вот препод тогда в ахуе на меня посмотрел и сказал мол eval используют только мудрые бородатые программисты и вообще это дыра в безопасности тебе мол не гоже этим пользоваться (с таким выражением лица будто я Авадекедавру кастанул). Дак вот я тут решил все с нуля очень углубленно все изучить и начал с Лутца и он буквально на первых страницах пишет, ну вот короче можно еще использовать eval и exec и все збс. Поясните, где правда?
>>634813 Где-то посередине. Также как с goto в сишечке. В целом лучше не пользоваться, но бывают случаи, довольно редкие, когда оно нужно. Так же и метаклассами всякими, но в меньшей степени.
>>634813 Но вообще: код в eval трудно будет разобрать тому, кто в твоем коде будет разбираться сложно отлаживать он просто не нужен, питон достаточно гибкий сам по себе, можно обойтись без кодогенерации и eval вообще.
Вас приветствует рубист. Вы тут пилите какие-нибудь совместные проекты? А то мне надоел руби-тред, там ничего нет, кроме нубов с тупыми вопросами по рельсам.
>>635273 В django ты просто набираешь python manage.py runserver И у тебя будет доступен dev сервер на 8000 порту с твоим приложением. Можешь ещё поставить какой-нить django-debug-toolbar и сможешь видеть прямо на страничке всякую хреть, например что в кэше или какие sql запросы происходили.
Деплой на боевой сервер проходит примерно как с php-fpm, но тебе это для "попробовать" не надо.
Вопрос по Python 3. Есть бинарник, который запускается через subprocess.run(). Это делается из функции, которая вызывается через multiprocessing.Pool().map(func, iterable). Если есть 12 ядер, то от скольки тредов не офигеет GIL?
>>635684 Т.е. ты запускаешь сторонний бинарник из питона, и чтобы этот бинарник тебя не блочил - ты запускаешь его через мультипроцессинг? Но зачем, если тебя блочит ожидание вывода от субпроцесса, и можно просто взять asyncio.create_subprocess_exec?
>>635694>>635707 Спасибо за asyncio. А если мне вообще всё равно на вывод? Бинарник должен только обработать файл, имя которого ему скидывается из общего списка и записать результат на диск. В среднем для одного файла он это делает за 3 секунды. >>635701 Обычно делаю через with Pool(num) as pool.
>>635725 А зачем тебе вообще питон? Почему просто в шелле не запустить /bin/foo >file1 & /bin/foo2 >file2 & и т.п. Или в питоне через os.system('/bin/foo >file &') Зачем городить всякие мультипроцессинги если тебе на вывод пофигу?
>>635731 Хотелось цельную систему выстроить по анализу данных, чтобы поставить на ночь, а утром уже всё готово. Обработать нужно где-то 1кк файлов. Если по одному за раз, то это как-то слишком долго.
Посоны, в укусе питона чувак пишет: >Если имя переменной начинается с двойного подчёркивания, как, например, __privatevar , Python делает эту переменную приватной (private). Поэтому принято имя любой переменной, которая должна использоваться только внутри класса или объекта, начинать с подчёркивания; все же остальные имена являются публичными, и могут использоваться в других классах/объектах. Помните, что это лишь традиция, и Python вовсе не обязывает делать именно так (кроме двойного подчёркивания).
С двойным подчеркиванием все понятно - я потыкал в шелле, действительно, объявленную таким образом переменную без явно определенного геттера/сеттера дернуть не удается. А от одинарного подчеркивания какой профит? Я проверял - такая переменная доступна, как и переменная без подчеркиваний вообще.
>>635754 Параллель то зачем? Опять усложняешь. Запуска в бекграунде через & и редиректа stdout/stderr тебе хватит. Чтобы процессы не отваливались при закрытии терминала (а так есть с & ) можно запускать бинарники от инита, setsid ./yoba &>/tmp/log - запустит, перенаправит весь вывод и не заблочит.
>>635759 Я вообще мало смысла вижу в таком хардкорном отказе в доступе к переменной. Если прижмет - я все равно ее достану, только 100500 костылей нагорожу. А чтобы просто дать понять что переменная не предназначена для прямого использования _name достаточно.
>>635759 Это просто соглашение, тот кто будет использовать твой код будет знать что это внутренняя переменная, которую лучше не трогать. Никак это насильно не ограничевается. К __переменным тоже доступ получить не проблема
>>635760 Мне нужно обработать 1кк фалов. Бинарник на вход берёт только один файл. Если я правильно понимаю, то запустив параллельно несколько процессов, я быстрее разберусь с этой бучей. Отрабатывать всё это дело неделю не вариант.
>>631494 (OP) Не знаю туда ли я зашел но на всякий случай спрошу. В общем обмазался я пастой про дайв инто питон. Книгу прочитал еще пару лет назад, pep8 тожедаже раньше. Теперь смотрю на асинхронные сервера чтобы войти в увлекательный мир хайлоада ну и ради разнообразия, посмотреть что-то кроме фласка и джанги. А теперь, внимание, вопрос - tornado или asyncio? И там и там асинхронщина, корутины, иолуп, вебсткеты всякие. Торнадо таки старее и стабильнее, асинкио включен в стандартную поставку третьего питона который я и использую.
>>635789 Торнадо умеет сам в asyncio http://www.tornadoweb.org/en/stable/asyncio.html Вообще если для веба/вебсокетов то торнадо повзрослее будет. Для асинкио я пока не знаю каких-то готовых фрейворков, они есть, но какие-то пока не оче доделанные.
>>635810 Смотрел на него, на первый взгляд даже поинтереснее будет чем торнадо из-за более широкого профиля могу хуйню нести. Но лично для меня у него фатальный недостаток - нет поддержки третьего питона
>>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, и не будет ли каких-нибудь утечек памяти? Можно ли как-то оптимизироват эту хуиту?
>>635855 Ну на твистед я делал сервер для карточной игры. Дальше тестирования это не пошло. Да и альтернатив тогда особо не было если хочешь какой-то протокол реализовать и не изобретать велосипедов, для твистед куча протоколов всяких поэтому реализована. Очень продуманный и грамотный API и архитектура. На торнадо я делал веб-сервер, который должен был принимать много мелких запросов и складывать их в очередь. Нормально работало.
кто-то сталкивался с регулярными грамматиками? имеется задача построить нка по регулярному выражению (простому, без вложеных скобок даже) нка в дка перевести и проверить строку могу.
Добрый вечер, в моем городе буквально через день game jam, поэтому ставим всей командой pygame. Так при обновлении pip, pip install --upgrade pip, вылетает traceback, гугление ничего не помогло. В чем проблема?
>>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?
>>636091 Даже в баш ты никак если запускаешь скрипт один из другого через новый шелл не получишь их поэтому надо делать source file.sh если хочешь переменные эти оттуда получть.
Объясните дауну пожалуйста, как с помощью lxml получить, например, отсюда http://www.bloomberg.com/quote/USDRUB:CUR курс валюты, просто цифры чтобы вернулись. я скорее всего чего-то делаю не так, подскажите пожалуйста
>>636196 lxml, beautifulsoup — это парсеры html. Они не обращаются к серверу, а просто парсят строку. Иными словами они ожидают примерно такого: html.parse('<html><head></head></html>')
>>636194 Не пизди, умеет. Только для https надо свои костыли прописывать.
>>636189 У тебя вообще много чего там не так в коде начиная от path и заканчивая тем, что оно нигде не используется. По быстроляну исправил и все работает http://pastebin.com/P1eLBNty
Кто так функции объявляет? Щито она вообще берёт, что это за переменная: подпеременные и -> тип в итоге? Нихуя не понимаю def semantic_similarity(bag1, bag2: list, w2v_model, unknown_coef=0.0) -> float:
>>636357 Нет. Просто ты никакого другого возврата кроме None не указал. Если вообще не писать return в функции - питон мысленно "дописывает" её сам и возвращает None. Т.е. с точки зрения интерпретатора твоя функция выглядит так:
>>636366 Лучше бесспорно, я просто читал о "мёртвом коде", который типа после ретёрна не выполняется, попробовал а оно хуйак и выполняется, и это-то мне и странно
Анон, подскажи нубу где дальше знаний набраться? Почти закончил бесплатный курс на курсере от Мичиганского университета, довольно годно, мне понравилось. Но там начальные знания а дальше курсы у них платные, сейчас бы не хотелось платить лол. Подкинь наводку, бро.
Аноны, подскажите какие-нибудь открытые проекты, куда можно поконтрибьютить после работы, чтобы помощь им действительно была нужна. Уже 2 года разработки на python за плечами, писал как-то и полгода на С.
>>636956 а в джанге орм для бд используется алхимия или своя? Я не сталкивался с ней. А в теории да, используешь foreign key к моделям, которые тебе нужны, а затем аггрегируешь для вывода.
>>637122 Я бы на его месте реальные задачи искать начал. Знания - это прекрасно, но он быстро разочаруется в этом говне, если не будет превращать знания в действующий код. Пусть скриптами автоматизирует все, что может; решает задачки на checkio или codewars; разбирается в чужом опенсорс на гитхабе; начинает реализовать какую-то свою идеи, обложившись гуглом и stackoverflow.
А Лутц при этом используется, как справочник, чтобы не изобретать велосипеды.
>>637136 Если с идеями для проектов голяк, то правда checkio попробуй - там задачи с возрастающей сложностью. Плюс они пытаются их подобрать таким образом, чтобы решения можно было где-то в большом проекте использовать. Плюс по каждой задаче смотри первые три most voted решения других людей и сравнивай их со своими, там интересные фишки попадаются.
Со временем начнут появляться мысли чего-нибудь такое написать. Распарсить какую-нибудь страничку, написать скрипт автоматического бэкапа порнухи, или скрипт для наведения порядка в папке Downloads, например. Можешь попробовать свои реализации классических алгоритмов и структур написать. Разные виды сортировок или связные списки. Поймешь заодно, как это все работает.
>>637103 Да я уже подумал, что может быть лучше использовать обычные integerfield's, а во view сделать один sql запрос и выгрести все, хз, выгоднее ли это с точки зрения обращения к бд
>>637429 res - это по сути слова, которые я потом объединяю в предложение. Тот кусок кода проверяет количество точек, т.е. фактически количество предложений.
Допустим у меня проект с вложенными 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
Django. Борда. 2 модели: треды и посты. Просмотр борды (треды + последние посты в них). Как это реализовать без чудовищных костылей? У меня получается какой-то бред с подгрузкой всех постов, цикл с отсеиванием ненужных, затем адские циклы в шаблоне. 2 запроса. Проще это сделать через raw sql? И выводить одним циклом? Помогите плес.
>>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 треда запрашиваешь столько постов, сколько надо.
>>637940 Вот здесь не пойму: first_word = tuple(filter(lambda x: c.lower() in x[0].lower(), words.keys())) Ты берешь ключ словаря, и проверяешь совпадает ли введенная строка с первым символом ключа. Есть подозрение, что ты имел в виду что-то другое.
>>638052 В общем, я хочу найти такие пары слов, в первом которых присутствует введённый мной кусок, т.е. c. words = { ('a', 'b'): 'c', ('d', 'e'): 'f', ... }
Но в данный момент это роли не играет, я просто Enter тыкаю, так что тамошнее условие не выполняется. res бывает равно [''] даже в первой итерации.
>>638067 И проверки на содержания '.' в любом случае будут False, если у тебя все элементы списки, даже если у тебя будет что-то подобное [['',' '],['.',' ']]. Ну ты понял.
Прошлый:
2.x или 3.x: http://legacy.python.org/dev/peps/pep-0373/