Программирование


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
517 59 136

Питон тред №84 /python/ Аноним 31/03/20 Втр 23:33:31 16477021
7790104094bc99f[...].jpg (99Кб, 449x640)
449x640
i4.jpeg (39Кб, 1000x625)
1000x625
Тред, посвящённый языку программирования Питон, #84

Предыдущий: >>1638346 (OP)
Литература:
Автоматизация рутинных задач ч.2 - https://anonymousfiles.io/3CBCoy1o/ <-- тут только одна книжка. Кто может, залейте её на ЯД к остальным.
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Текущая версия: https://ideone.com/lujiX5
Аноним 31/03/20 Втр 23:36:47 16477062
>>1647702 (OP)
Анон, если ты можешь читать только из под прокси, но не можешь писать сюда из-за бана прокси, попробуй, например, вместо .hk домен .pm
Аноним 31/03/20 Втр 23:45:47 16477133
numba Аноним 01/04/20 Срд 00:48:31 16477454
>>1647702 (OP)
Заценил нумбу на каком-то говне.
Если передавать список в аргументы функции - выполняется за 2.9 секунды.
Если список+нумба - 23 секунды.
Если преобразовать список в numpy-массив - 10.9 секунды. Лол, вообще не понял как это работает и почему массив работает хуже списка.
Если массив+нумба - 1.8 секунды. (А если ещё указать float64(int32[:,:],float64[:], int64) - то 0.75 секунды, видимо первая компиляция кушает)

На другом говне с крупными numpy-массивами (больше математики, меньше вложенных списков в аргументах функций и другого говна).
Ванилька: 9.046 секунды
Нумба: 0.831 секунды
Нумба с указанием типов в функциях: 0.374 секунды
Нумба с указанием типов в функциях и приведением кода к си-стилю: 0.064 секунды
Это в 150 раз прирост. У меня есть этот же код на си строчка в строчку, и он работает в 300 раз быстрее питонного. Получается всего в два раза отставание от честно скомпилированного кода, это при том, что часть кода не компилируется. У луа похожий результат был, тоже отставание в два раза при jit-компиляции.

>Почитай обязательно про модуль numba
Так что одобряю, теперь питоном почти можно пользоваться.
Аноним 01/04/20 Срд 01:16:26 16477515
Какими методами можно ускорить работу с requests.get? Только в асинхронщину лезть?
Аноним 01/04/20 Срд 03:46:00 16477776
>>1647745
Написал функцию подсчёта простых чисел до N, умеренно оптимизированную.

Делаю два запуска, первый до 13, для компиляции, второй до основного числа, уже на время:

Если до 100 тысяч, то время на первый запуск / основной:
ванилла 3.6, <1ms, 68ms
pypy3, <1ms, 39ms
numba (на 3.6) 242ms, 5ms

то есть очень долго компилирует, вся выгода улетает.

Если до 10 миллионов
ванилла <1ms, 24.5 секунды
pypy3 <1ms, 9.8 секунд
numba 0.24 секунды, 1.7 секунд

Никаких numpy не использовалось, чисто питоновский код.

Процесс компиляции реально долгий, но я потестировал, судя по всему, это время тратится за загрузку машины-компилятора numba, а не на саму компиляцию кода. Если сделать несколько функций немного разных и их скомпилировать, то разницы во времени почти нет, те же 0.24 секунды на компиляцию всех функций.

Реальная альтернатива тому, чтобы писать внешние модули на Си для вычислительных задач. Ещё есть возможности для оптимизации дополнительные.

Минусы: больше только для вычислительных задач. Не поддерживает асинхронный код, не совместимо с pypy. Даже классы ограниченно поддерживает.

Но, питонисту про существования модуля знать обязательно, может иногда пригодиться.
Аноним 01/04/20 Срд 04:17:53 16477827
>>1647777
>то есть очень долго компилирует, вся выгода улетает.
Просто укажи типы и время компиляции становиться смешным.

По счастливой случайности я сейчас тоже балуюсь с простыми числами.
Получение первых 10000 простых чисел (с сохранением в список - пробую делить новое число на цифры из списка): ваниль - 1.862, нумба - 0.653, нумба у сказанием типа (@njit(int64[:](int64))) - 0.014.
100000: ваниль - 47.004, нумба - 0.830, нумба с типами - 0.217
1000000: нумба - 5.758, нумба с типами - 4.880
Аноним 01/04/20 Срд 04:21:04 16477848
>>1647782
Хотя хуйню посоветовал, он при применении декоратора всё-равно виснет.

Энивей полезно, если функция работает меньше секунды за всё время работы, то это можно и не оптимизировать в общем-то.
Аноним 01/04/20 Срд 05:11:26 16477919
Если у меня на парсинг цен по 10 товарам уходит ~20 секунд, я что-то определённо делаю не так?
Аноним 01/04/20 Срд 05:37:24 164779410
>>1647791
Да.
Для начала ты должен понять, на что они у тебя уходят - на то, чтобы скачать страницы, либо на то, чтобы именно распарсить?
Аноним 01/04/20 Срд 05:51:11 164779711
.JPG (43Кб, 1030x388)
1030x388
>>1647794
В каком смысле "скачать страницы"?
Скорее всего, второе. Может, это потому, что я путешествую по json'у get'ами?
Аноним 01/04/20 Срд 05:54:59 164779812
>>1647797
Да, json там довольно здоровый.
Аноним 01/04/20 Срд 06:00:45 164779913
>>1647797
У тебя есть строка
response = request.get(current_address)

Это ты скачиваешь страницу. Для этого ты лезешь в интернет, это занимает какое-то время, чтобы там соединение установить, запрос отправить и т.п. Легко может получиться, что основное время именно здесь расходуется.

Попробуй посчитать, сколько времени уходит на каждый запрос.

JSON в норме очень быстро обрабатывается. По крайней мере через библиотеку json, про этот способ не скажу, надо смотреть.
Аноним 01/04/20 Срд 06:02:37 164780014
>>1647799
Ну и не советовал бы с сайтов качать с большей скоростью, лучше наоборот, задержки встраивать. Иначе легко можешь попасть в чёрный список сайта, иногда отслеживают активность.

Аноним 01/04/20 Срд 06:17:23 164780115
>>1647799
Посчитал - в среднем где-то 2-4 мс. Похоже, где-то сильно налажал в логике.
Аноним 01/04/20 Срд 11:44:10 164786516
Есть кто живой?
Аноним 01/04/20 Срд 13:23:37 164789817
>>1647797
1. Поставишь асинхронку или даже многопроцессорность для скачки данных - получишь елдой банхаммером по голове за спам запросами. Это я уже проходил много раз
2. Ты общаешься с местным api?
3. Какого размера у тебя выходит json? Посмотри с помощью __sizeof__
Аноним 01/04/20 Срд 13:28:34 164790218
Аноним 01/04/20 Срд 13:44:54 164792719
>>1647801
Попробуй спрофилировать и посмотреть, на какие функции основное время расходуется
python -m cProfile my_script.py
Аноним 01/04/20 Срд 16:06:23 164805120
Посоветуйте редактор кода.
Из опробованного:
вим - перебор
Пайчармы - стойкая неприязнь ко всему, что делает джет брейнс.
Всякое говно на электроне - ВС код и Атом. Сейчас пользуюсь ими, но постоянный баги ужасают, особенно то, что переключаясь на окно редактора из какого-то другого, и пытаясь провернуть колесико мышки - само окно проматывается в неизведанные дали. Видимо запоминаются движение колеса вне самого редактора и потом разом применяются.
Спайдер - просто не понравился. Все неудобно, топорно, некрасиво, будто юпитер ноутбук вынесли в отдельный редактор.
Посовейтуйте что-нибудь.
Аноним 01/04/20 Срд 16:16:32 164805921
Как установить этот питон или че там надо, на комп(винда), типа я программку пишу оно мне считает, или окошко выводит с надписью или вопросом, как-то так.
Аноним 01/04/20 Срд 16:16:37 164806022
Аноним 01/04/20 Срд 16:30:10 164806523
1200px-Geanylog[...].png (250Кб, 1200x1200)
1200x1200
Аноним 01/04/20 Срд 16:40:45 164807024
image.png (6Кб, 454x201)
454x201
>>1648059
Установить питон быстрее чем дождаться ответа на борде, кстати.

https://www.python.org/downloads/windows/
Ставишь, например 3.8.2 х64, запускаешь IDLE - открывается пикрелейтед (консоль). Всё, ты можешь писать код на питоне. Ещё можно нажать ctrl+n (чувствительно к языку раскладки, лол - на русской горячие клавиши не работают), вводить несколько команд сразу и запускать по f5. Или редактировать .py файл в любом блокноте и запускать как батник.
Аноним 01/04/20 Срд 16:46:22 164807725
>>1647797
Бьютифал суп наверно быстрее будет.
Аноним 01/04/20 Срд 16:48:05 164807926
>>1648077
хтмл парсер быстрее жсон парсера? Это вряд ли.
Просто анон где-то обосрался.
Аноним 01/04/20 Срд 17:34:21 164810627
>>1648060
Он разве бесплатный?
>>1648065
Спасибо, не слышал, выглядит интересно.
Аноним 01/04/20 Срд 18:23:36 164813428
>>1648106
Платный, но после конца триала только бухтит и продолжает работать.
Аноним 01/04/20 Срд 18:44:06 164814729
Аноны, когда в параметризированных запросах надо использовать '%s', а когда просто %s ?
Аноним 01/04/20 Срд 19:08:27 164816430
Аноним 01/04/20 Срд 19:28:59 164818031
Есть массив и есть связный список...
В питонухе, как я понял, массивов нет, есть только списки (list)? В массиве же доступ к любому конкретному элементу достигается за О(1), а вот в списке за О(n) кроме первого элемента - head, к нему канешн всегда О(1)
Есть ли сторонняя либа с массивами?
Аноним 01/04/20 Срд 19:36:44 164818532
>>1648164
MySQL таблица вида (ID, Text, Longtext, Datetime, Int, Int, Text, Datetime, Int, Json, Json)
Пытаюсь выполнить запрос
"INSERT INTO `table_name` (имена столбцов кроме ID) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s);"
Но в итоге постоянно выдает ошибку
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sssaa'' AND date=''2020-04-01 16:30:52''' at line 1")
Окей, почитал, что для даты-времени нужно использовать не просто %s, а '%s', обернул оба столбца с даой-временем таким образом. Все равно получаю хуйню
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2020-04-01 16:34:31'', 6, 44, NULL, ''2020-04-01 16:34:31'', NULL, '{}', NULL)' at line 1")
Вот что блядь не так? Я с этой хуйней уже часа 4 сижу, разобраться не могу
Аноним 01/04/20 Срд 19:40:16 164818833
>>1648180
>с массивами?
numpy?
>в списке за О(n)
Уверен насчёт этого? Откуда ты это взял? Я очень-очень сомневаюсь, что в петухоне доступ к элементу за О(n).
Не интересовался как это внутри устроено, если бы я на крестах делал список, который может содержать произвольные типы - то я бы хранил это в виде массива (или дека, нужно проверять что будет лучше в общем случае) из пар (тип,указатель_на_данные). Там будет доступ за O(1), а всякие сортировки будут перемещать маленькую структуру с указателем, вместо реальных объектов.
Аноним 01/04/20 Срд 19:42:56 164819034
>>1648188
list.pop() и list.append() за О(1) инфа сотка, но вот остальные операции - хз
Аноним 01/04/20 Срд 19:46:32 164819335
>>1648180
Доступ к любому элементу списка O(1).
Удаление элемента из списка, поиск элемента в списке, то есть "element in list" - O(n)

Вот таблица, кстати
https://wiki.python.org/moin/TimeComplexity
Аноним 01/04/20 Срд 19:47:39 164819436
>>1648188
>>1648180
Палка на двух концах. Можно каждому элементу внутри List присвоить поле index - integer значение, которое показывает его порядковый номер в списке, тогда доступ по этому индексу будет за О(1), но вот незадача, при вставке/удалении, придется инкрементировать или декрементировать соответствующие индексы... И трудоемкость возрастает до О(n). Можно забить хуй на индексы и двигаться от head, в таком случае при удалении/вставке надо лишь переназначить смежные ссылки, но вот доступ к элементу уже будет за O(n)
Тут тебя выебут либо в рот, либо в жопу, задача программа лишь выбрать одну из двух дырок, расслабиться и наслаждаться процессом
Аноним 01/04/20 Срд 19:48:28 164819537
.jpg (422Кб, 1460x920)
1460x920
>>1647898
API у них только для бизнеса, к сожалению.
С __sizeof__ странная штука получается: если применять его к переменной с json'ом в консоли, показывает 216 байт, а если сохранить этот самый json в текстовый файл, получается 67 килобайт. sys.getsizeof при этом возвращает 232 байта.

>>1647927
Спрофилировал: больше всего времени уходит на вот эти штуки, получается.
Аноним 01/04/20 Срд 19:49:51 164819638
>>1648193
>>1648194
Ааа, выходит что в Питонухе как раз доступ к элементу за О(1) а вот вставка/удаление трудоемка
есть классические связные списки с вставкой за О(1)? друг просит
Аноним 01/04/20 Срд 19:54:54 164820139
>>1648195
Может быть, такое поведение и нормально, если учитывать, что эти товары могут быть распиханы на 30 страниц? При этом на каждой странице по 30 товаров, и у каждого нужно взять цену в этом огромном json'е.
Аноним 01/04/20 Срд 19:57:07 164820340
>>1648185
Ты делаешь через prepared statements или просто хуяришь сформатированную строку?
Я пока не смотрел, как там сделано в питоне.
Аноним 01/04/20 Срд 19:58:25 164820441
Аноним 01/04/20 Срд 20:04:08 164820842
Аноним 01/04/20 Срд 20:06:26 164820943
>>1648195
Вот значит у тебя вся задержка из-за сети, долго данные читаются, здесь надо разбираться почему.

Сто лет на request не смотрел, ничего не скажу. Возможно там надо как-то сначала целиком данные скачать, каким-нибудь одним запросом, а потом скормить его json. ХЗ. А может просто сервис медленно данные отдаёт.

На самом деле если ты говоришь 67 килобайт, и это за полсекунды, то это мегабит в канале. Это не так мало, ты же не один может эти данные запрашиваешь.
Аноним 01/04/20 Срд 20:13:01 164821144
>>1648195
Возможно, у простого get нет keep-alive, так что кучу времени жрет ссл хендшейк. Попробуй через session.
Аноним 01/04/20 Срд 20:21:05 164821545
image.png (28Кб, 894x300)
894x300
>>1648211
Так и есть, тащемта. Там одноразовые сессии создаются на каждый запрос.
Аноним 01/04/20 Срд 20:31:07 164822146
>>1648215
Мне кажется, тут скорее всего не та вещь, которую тебе нужно оптимизировать. Это ведь вопрос сети, а не твоего кода. Если ты будешь слишком агрессивно качать, рискуешь попасть в чёрный список. Это, конечно, от сервиса зависит. Не факт, то им жалко, и не факт, что обнаружат.

Аноним 01/04/20 Срд 20:36:24 164822347
>>1648221
Апи оно на то и апи, что можно качать сколько влезет. Если есть какие-то лимиты, то они обозначены явно в документации.
Аноним 01/04/20 Срд 20:38:08 164822448
swapprofile2.png (58Кб, 757x695)
757x695
>>1648208
У тебя на самом деле там не swap, а рандом время жрёт плюс сам цикл, вызов функции и т.п.
Аноним 01/04/20 Срд 20:51:04 164822849
>>1648224
Угу, не удивительно. Замени рандом на c%1024, если хочешь.
Это не важно, рандом O(1) жрёт. O(30)==O(1). Если бы доступ был за линейное, то х20 размер массива дал бы вклад несмотря на тяжёлый рандом.

Что за хуета на пике? Тоже хочу такую.
Аноним 01/04/20 Срд 20:54:03 164822950
Аноним 01/04/20 Срд 20:57:52 164823251
>>1648209
>>1648211
>>1648215
>>1648221
>>1648223
Спасибо за ответы.
Приделал requests.Session - максимум на ~2 секунды сократилось время исполнения. Насколько понимаю, это либо на сервере у них стоит какое-то ограничение, либо что-то у меня с интернетом тогда.
Аноним 01/04/20 Срд 20:59:41 164823352
>>1648224
Это kcachegrind, профилировщик.
Ты собираешь профиль с помощью cProfile, например
python3 -m cProfile -o data.profile my_script.py

потом запускаешь скрипт, который конвертирует этот профиль в формат для kcachegrind
pyprof2calltree -k -i data.profle

kcachegrind надо предварительно поставить, а скрипт можно поставить через pip
Аноним 01/04/20 Срд 21:02:32 164823453
>>1648232
Что-то не так приделал,значит. Покажи новый код.
Аноним 01/04/20 Срд 21:09:51 164823754
.JPG (52Кб, 1274x491)
1274x491
.JPG (58Кб, 890x561)
890x561
>>1648234
"Сsv_write", если что, убирал - практически не снижает время исполнения.
Аноним 01/04/20 Срд 21:16:35 164823955
>>1648234
>>1648237
По профилю тут >>1648195 видно, что основное время тратится на метод _read SSL сокета, а не на установление соединения.

Мне не понятно, почему этот метод, и некоторые другие, отвечающие за соединение (set_cypther и другие), вызываются 82 раза. Такое ощущение, что реально 82 соединения устанавливается, а не 20, как анон говорил.

150 миллисекунд на соединение и 67 килобайт данных это вообще прилично.
Аноним 01/04/20 Срд 21:20:50 164824056
>>1648237
Ну хуй знает. Попробуй ещё гзип добавить, тоже частенько улучшает. Там вроде только хедер нужен, а разжимает автоматом.
Аноним 01/04/20 Срд 21:38:14 164824857
>>1648194
Аналогии с хуями и жопоеблей мне больше всего нравятся
Аноним 01/04/20 Срд 21:39:57 164825058
>>1648147
И какого хуя запрос
"INSERT INTO table (name, date_created, logo) VALUES (%s, %s, %s)"
При параметрах
(name, datetime, '')
Вместо пустой строки в последнем параметре вставляет ебучий апостроф в таблицу? У меня конечно мозг совсем от ORM размяк, но какого хуя оно не вставляет пустую строку как сказано?
Аноним 01/04/20 Срд 22:05:41 164827459
Screenshot5.png (18Кб, 598x291)
598x291
Beautiful Soup не находит descendants, хотя у тэга они есть (app), в чем может быть причина?
Аноним 01/04/20 Срд 22:07:54 164827560
>>1648274

root = soup.find("div",id="app")
print(root)
root_childs = [e for e in root.descendants]
print(root_childs)
Аноним 02/04/20 Чтв 04:11:46 164838161
Якого хуя петухон переписывает переменные?

Есть цикл ака

for button in buttons:
label = tk.Button(self, command=lambda: print(label))

вот какого хуя при нажатию на кнопку оно высирает последний элемент? как это предотвратить и выдавать то, что нужно?
Аноним 02/04/20 Чтв 04:13:04 164838262
Стикер (0Кб, 473x500)
473x500
>>1648381
Виздос ты чмоня, конечно. Унижен питохоном.
Аноним 02/04/20 Чтв 05:13:56 164838563
>>1648382
надеюсь больше не возьму это говно. нелогичная хуйня, так собсна, ответ будет?
Аноним 02/04/20 Чтв 05:21:34 164838664
Сап. С чего начать разработку бота для телеграма? Посоветуйте что посмотреть/почитать на эту тему. Программировать хочу на питоне, не особо понимаю как подключить бота к среде разработки pycharms и синхронизировать код с ботом
Аноним 02/04/20 Чтв 09:23:46 164840865
Как в машоб вкатиться? В интернетах либо говно, либо сразу начинают с каких то йоба задач. Пистон знаю, 3 года говнячил на джанге, надоело.
Аноним 02/04/20 Чтв 09:25:52 164840966
>>1648381
Не читай SICP, говорили они. Ничего из него в реальной жизни не понадобится, говорили они.
google://замыкание
Аноним 02/04/20 Чтв 09:41:32 164841367
Аноним 02/04/20 Чтв 10:58:22 164842568
Аноним 02/04/20 Чтв 11:08:53 164842969
>>1648425
Всегда без кавычек. Это не тот %s который в форматировании строк.
Аноним 02/04/20 Чтв 11:14:04 164843170
>>1648429
Но на те же datetime, когда вставляешь отформатированной строкой, я так понял надо делать именно с кавычками.
А насчет >>1648250 можешь подсказать? 3й параметр - пустая строка, через DataGrip я спокойно вставляю пустую строку, а тут оно хуярит 1 кавычку как бы я не делал: оставлял параметром, переносил эти кавычки в VALUES
Аноним 02/04/20 Чтв 11:27:17 164843871
>>1648431
Какая БД и какая батарейка? Не должно быть там никакой кавычки.
Аноним 02/04/20 Чтв 11:29:48 164844172
>>1648438
MySQL 8й
> какая батарейка
Всм?
Аноним 02/04/20 Чтв 12:32:07 164846273
15830554055300.jpg (51Кб, 1080x1057)
1080x1057
Как же заебал этот водолей на Лутце, еще пол книги дочитывать.
Аноним 02/04/20 Чтв 12:57:38 164847174
>>1648462
Читай что-то другое.
Аноним 02/04/20 Чтв 13:29:47 164848675
>>1648409
> google://замыкание
дальше то что? это мне помогло решить проблему? нет
Аноним 02/04/20 Чтв 14:02:35 164850876
>>1648462

дали им checkio.org, изучай, практикуй, разбирайся. нет, хотим просто читать, чтоб знания сами в голову залетали и там волшебно усваивались
Аноним 02/04/20 Чтв 18:43:35 164865677
>>1648381
Бля, брат, ты совсем тупой? Я понимаю, что это питон и он мозги размягчает, но что ты хочешь от питона? Ты в одну и ту же переменную весь цикл пихаешь разные значения. А потом вопишь, что питон тебе говна в жопу залил, ведь в это переменной теперь не тысяча значений, а ровно одно последнее.
Аноним 02/04/20 Чтв 18:48:20 164866278
Аноним 02/04/20 Чтв 19:07:31 164867879
А теперь я напишу свою охуенную историю. В прошлом треде я уже писал, что не мог разобраться с импортами. Теперь я вроде как разобрался и хочу, чтобы мне кто-то сказал правильно ли я понял или нет.
Есть следующая файловая структура, на которой я тестил свою хуйню жирный шрифт -- папки, курсив -- файлы

TestApp
---Folder1
------FileA
---Folder2
------FileB
---main

Я хочу из FileA импортнуть функцию look из FileB. Если в FileA написать import Folder2.FileB, то будет такая ошибка No module named 'Folder2'. Если импортить относительно, а именно вот так from .Folder2.FileB import look, то будет ошибка attempted relative import with no known parent package. При том, если в main импортить файлА и файлВ, то импорты будут работать заебись в любом из вариантов.
И вот в чем вопрос, правильно ли я понимаю, что питон вообще не может импортить пакеты или файлы из директорий, который находятся выше, чем главный запускаемый скрипт?

Аноним 02/04/20 Чтв 19:14:45 164868580
>>1648678
Файлы __init__ то надеюсь замутил?
Ты в PATH пути добавил?
Аноним 02/04/20 Чтв 19:17:11 164868981
Есть годные курсы по пректическому программированию на питоне? Лекции и книги - это хорошо, но мне больше подходят курсы, т.к. легче прогресс отслеживать, и интерактив есть. рус/англ - всё равно, но думаю на ангельском будет больше материала. Также не хотелось бы опять скипать кучу новичковских знаний, по типу "что такое циклы/условия/типизация/етс. У лутца есть книга, но она уже старая, и может не затрагивать более новых фич
Аноним 02/04/20 Чтв 19:26:57 164869582
Еще один тупой вопрос по запросам
Запрос:
SELECT * FROM `users` WHERE login IN (%s);
Данные:
['abc']
Ошибка:
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'abc''' at line 1")
Какого хуя ему блять от меня надо? Я передал строку для выборки из колонки с типом TEXT, а оно меня нахуй шлет
Аноним 02/04/20 Чтв 19:32:39 164869983
>>1648695
>You have an error in your SQL syntax
Если тебе говорят об ошибке синтаксиса, значит ты клован, который не знает синтаксис (не важно чего: питонуха, sql или лиспа). Прими это как данность
Аноним 02/04/20 Чтв 19:35:56 164870184
>>1648699
Я бы принял это как должность, если бы тот же запрос, но с вручную подставленными данными
SELECT * FROM `users` WHERE login IN ('abc');
не выполнялся успешно без каких-либо ошибок
Аноним 02/04/20 Чтв 19:44:44 164870685
Аноним 02/04/20 Чтв 19:44:49 164870786
>>1648685
> Файлы __init__ то надеюсь замутил?
С питухона 3.3+ версий инит не нужон, держу в курсе.
> Ты в PATH пути добавил?
Уже бегу говнякать глобальную переменную своей машины, ага.
Не, брат, я эту тему глубоко копал, так как, во-первых, каждый раз, когда я делаю пет проект добавлять по 100-150 строк в пас то абсурд, во-вторых, это занимает миллиарды строк и я в рот ебал такие приколы. Про иниты я не до конца понимаю что в них нужно писать, но добавлять пустой инит ради того, чтобы питухон воспринимал папку как пакет не нужно уже как года два.
Аноним 02/04/20 Чтв 23:09:06 164881687
wtf-nigga-3.png (265Кб, 600x700)
600x700
Аноним 02/04/20 Чтв 23:22:08 164882188
>>1648678
>И вот в чем вопрос, правильно ли я понимаю, что питон вообще не может импортить пакеты или файлы из директорий, который находятся выше, чем главный запускаемый скрипт?
Да, именно так. Всё остальное - обходные решения.

Я думаю это сделано специально, потому что такие схемы импорта очень грязны сами по себе. Это грязная архитектура. Не должно быть таких зависимостей сложных и неочевидных. У тебя или должен быть дочерний модуль, в подкаталоге, или глобальный, прописанный в твоём окружении, например.

Аноним 03/04/20 Птн 00:28:43 164884589
Пытаюсь из вашего говна перекатится в ноду, чувствую сильные беды с башкой от стрелочных функций, промисов, асинхрощины во все поля и кучи других приколов.
Всё-таки от простоты пистона со временем деградируешь, не советую его учить как самый первый яп.
Аноним 03/04/20 Птн 00:34:54 164884890
>>1648845
Хорошая попытка js-блядь, но нет.
Аноним 03/04/20 Птн 02:32:01 164893791
>>1647702 (OP)
Как мне понять и почувствовать ООП? Не могу разбираться в логике всякого кода нормальных людей, когда думаю сам о архитектуре, то от ооп в голову приходит только делать простейшие классы и получать профит только от простейшей инкапсуляции. А в нормальном коде даже у простых задач вообще всё через ооп работает. А ведь там дальше ещё паттерны всякие, и сложный нагруженный код.
В общем, помогите как-то влиться во всё это, только я книжки из-за сдвг не могу читать, мне лучше курсы какие-нибудь.
Аноним 03/04/20 Птн 08:43:09 164906192
image.png (333Кб, 400x314)
400x314
Привет, анон, я мимовкатывальщик 20 лвл, как ты думаешь, стоит пытаться вкатиться зная английский на достаточно слабом уровне?(могу связать пару слов и понять 60% того, что мне говорят) Есть ли смысл пробираться сквозь тернии к звездам держа в зубах переводчик? Или, может, есть актуальная русскоязычная литература, которая поможет создать фундамент для моего вкатывания? Спасибо
Аноним 03/04/20 Птн 11:07:08 164913393
У меня вопрос. Вот я осилил учебник по питону, смотрю на скрипт, понимаю как он работает, как что и с чем связано. Но когда дело доходит до написание своей программы, даже самой простой, в голове появляется обезьянка и стучит в тарелки. Такое ощущение, словно мозг напрочь не может вспомнить нихуя, либо путается в строках и выходит быдлокод. При этом если берешь чужой похожий код, то можешь нормально его корректировать под себя. Как с этим бороться?
Аноним 03/04/20 Птн 11:11:11 164913694
>>1649133
Начни писать регекспы, пойми, что там проблема прямо противоположная. Выработай промежуточный поход, пользуйся им в обоих дисциплинах.
Аноним 03/04/20 Птн 11:25:33 164914195
>>1649133
Это стандартное плато, такое есть и в изучении иностранных языков например.
Надо продолжать, что ещё делать, лол.
Аноним 03/04/20 Птн 11:32:43 164914796
>>1649061
Технический англиский несложный.
Алсо, нет такого, что вот охуенная литература или курс и ты всё поймешь, а остальная вообще ни о чем. В целом они перессказывают одно и то же, кроме всяких практических кукбуков.
Достаточно литературы по бидону 3+, т.е. примерно десятилетней давности. Новыми фичами можно догнаться позже, если до этого вообще дойдет дело.
Аноним 03/04/20 Птн 11:40:56 164915397
>>1649147
То есть можно просто взять того же Лутца 2011 года и по нему двигаться?
Аноним 03/04/20 Птн 11:47:48 164915998
>>1649153
Последний оригинальный Лутц 2013 года и он сам пишет, что обновление нинужно https://learning-python.com/about-future-eds.html
2011 это видимо переводное предыдущее издание. Так что есть вариант поновее, но и это сойдет.
Аноним 03/04/20 Птн 12:24:27 164919299
изображение.png (694Кб, 580x713)
580x713
Аноним 03/04/20 Птн 13:07:59 1649216100
- 19.png (6Кб, 248x189)
248x189
Нужно склеить список списков в один непрерывный список. Без вложений. Можно как-нибудь однострочником?
Аноним 03/04/20 Птн 13:13:13 1649219101
Аноним 03/04/20 Птн 14:01:15 1649239102
BE5AA873-5555-4[...].png (319Кб, 446x650)
446x650
Посоны-вкатывальщики, там на один день открыли бесплатную регу на годный курс - https://inventwithpython.com/automateudemy

Автор написал пикрил, не знаю на сколько инфа пересекается, но курс наверняка информативнее, чем книжка. Планирую изучить и то, и другое.
Аноним 03/04/20 Птн 14:13:36 1649250103
>>1649239
Думаю, практически повторяет книгу.
В принципе, я нахожу видеокурсы более продуктивным для хуя-прокрастинатора, легче удерживать внимание, чем читая пдфку. Потом можно уже углублятся в детали, почитывая документацию.
Аноним 03/04/20 Птн 15:42:04 1649327104
>>1649192
Но ведь логично все
Аноним 03/04/20 Птн 18:19:52 1649439105
>>1649133
Делай сам просто много простых задачек, похожих, по несколько раз. Чтобы вот ты себя в таких задачках свободно чувствовал. Вот такие, на несколько строк, на один-два экрана максимум, от твоего уровня зависит.

При этом ОБЯЗАТЕЛЬНО возьми за правило писать их с нуля, не пользуясь своими старыми решениями, не только копи-паст не надо делать, но и даже заглядывать в них.

Это всегда работает, довольно быстро и эффективно. Когда какие-нибудь новые технологии осваиваешь, тоже очень полезно.
Аноним 03/04/20 Птн 18:27:41 1649444106
>>1649216
В принципе для этого специальная функция в модуле itertools

import itertools
b =[*itertools.chain.from_iterable(a)]

Аноним 03/04/20 Птн 18:32:35 1649451107
Время еще одного тупого вопроса по работе с БД, как правильно написать выполнение нескольких запросов с транзакцией? Что-то типа такого?
https://pastebin.com/P63DBenC
Аноним 03/04/20 Птн 18:35:05 1649454108
>>1649451
включаешь транзакцию
@
хуяришь мильйон вставок
@
коммитишь

Это можно завернуть в try и делать роллбэк при ошибке.
Аноним 03/04/20 Птн 18:38:17 1649457109
До меня походу дошло, почему здесь так любят перл-стайл однострочники вместо вынесения кода в функции. Потому что иначе будет как в джаве с размазыванием логики.
Аноним 03/04/20 Птн 18:38:28 1649458110
>>1649454
Спасибо, значит я правильно понял, просто что транзакцию не включил, а так через трай сделал сразу
Аноним 03/04/20 Птн 18:46:57 1649463111
Анон, я хочу написать крестики нолики, но мне не совсем понятен модуль tkinter. Почему там нельзя задавать произвольное положение кнопки?
В общем, хочу пойти сложным путем, холст, рисование матрицы 3х3, обработка щелчка мыши на клетке, проверка, куда кликнул по координатам относительно окна.
Как рисовать, какой модуль юзать для холста?
Аноним 03/04/20 Птн 18:56:36 1649470112
>>1649463
Почему ты думаешь, что нельзя?
button = tkinter.Button(root, text="button")
button.place(x=200, y=100)

Использовать всё тот же модуль tkinter, из него брать Canvas.
Аноним 03/04/20 Птн 18:59:01 1649472113
>>1649470
Потому что я скачал дизайнер, чтоб расположить кнопки как матрицу и сука не смог их передвинуть. Согласен, это тупо, что в таком модуле нельзя было бы изменить положение, но все же. Может дизайнер есть более нормальный?
Аноним 03/04/20 Птн 19:02:40 1649476114
>>1649472
Ручками делай, какой дизайнер.
Тем более, что для твоего случая это можно рассчитать кодом.
Аноним 03/04/20 Птн 19:09:17 1649484115
>>1649472
> дизайнер
Ну и смысл тогда идти "сложным путём"?
Гуй на питоне пишут редко, соответственно, предложение инструментов для этого куда меньше, а те, что есть, сосут в сравнении с тем же Qt Designer.
Аноним 03/04/20 Птн 19:18:03 1649493116
>>1649484
Так. Тогда какой гуй выбрать? кьюТи?
Я хочу написать ебаный тетрис, крестики нолики, еще какую-нибудь хуету.
На паскале писал, там есть событие онМаусМув, и в нем я считал, на какую ячейку наведена мышь для клика. Ну и так же можно привязать на стрелки переключение фокуса активной ячейки. Вот тут тоже хочу повторить.
Вообще хочется сделать полноценный вариант тетриса
Аноним 03/04/20 Птн 19:25:55 1649496117
>>1649493
Это всё можно сделать на ткинтере, и здесь тоже есть аналогичные эвенты. Вопрос в том, обязательно ли тебе нужен дизайнер для такой сравнительно простой задачи. Крестики-нолики и тетрис - это далеко не 3д макс или фотошоп по сложности, чтобы здесь был нужен дизайнер.
Аноним 03/04/20 Птн 19:29:10 1649499118
>>1649496
Да я просто на будущее хочу
Аноним 03/04/20 Птн 19:32:27 1649505119
>>1649493
>кьюТи?
Наверное, лучший вариант если тебе нужен именно Дизайнер
Аноним 03/04/20 Птн 19:55:57 1649514120
>>1649505
А ведь можно напердолить интерфейс на сишарпе, охуенно напердолить, красивый, а работать с модулями питона. Или это совсем пиздец?
Аноним 03/04/20 Птн 20:07:49 1649528121
Аноним 03/04/20 Птн 20:08:06 1649529122
>>1649514
> пиздец
Мне ещё не попадались языки, где FFI был бы удобным и прозрачным, везде нужно писать кучу обёрток, конвертеров и проверок.

мимо
Аноним 03/04/20 Птн 20:49:52 1649567123
>>1649514
>>1649529
Есть ironpython под дотнет, но только второй пока.
Аноним 03/04/20 Птн 21:27:16 1649588124
>>1647751
Если у тебя последовательные запросы, то примерно никак, с асинхронщенной ты получишь прирост только при множестве «параллельных» запросов.
Аноним 03/04/20 Птн 21:37:14 1649590125
Блять, анон, я что, не могу менять значение переменной внутри функции?
Объявил переменную в начале кода со значением "Х"
Использую ее в функции. Из этой же функции пытаюсь переопределить ее значение, так как это как бы глобальная переменная, не?, получаю ошибку
local variable referenced before assignment
Аноним 03/04/20 Птн 21:44:52 1649596126
>>1649590
Вангую, она у тебя просто под функцией определена.
Аноним 03/04/20 Птн 21:47:27 1649597127
Аноним 03/04/20 Птн 21:48:05 1649598128
>>1649590
Тебе надо её в функции как global декларировать.

Иначе ты её можешь или только как read-only, или как локальную переменную использовать.
Аноним 03/04/20 Птн 21:49:56 1649600129
>>1649598
то есть пишем сперва global myVar? В функции
Аноним 03/04/20 Птн 21:52:10 1649602130
>>1649600
Да. Если ты меняешь значение глобальной переменной, её обязательно надо сначала задекларировать, как глобальную.



Аноним 03/04/20 Птн 22:17:37 1649613131
>>1648816

у меня все работает. перезагрузи страницу, может?

мой солюшен:
len(password) > 6 and any(s.isdigit() for s in password)
Аноним 03/04/20 Птн 22:20:36 1649615132
>>1648816
а, наверное у тебя сломалось из-за того, что там от прошлого солюшна вставляет код, добавляя его к новой заготовке. просто почисти от всего кроме функции (можешь тесты удалить тоже, они чисто для тебя, чтоб локально проверять)
Аноним 03/04/20 Птн 22:24:05 1649619133
image.png (188Кб, 1849x719)
1849x719
>>1649613
>>1649615
Та же хуйня. Я уже и сам метода три разных придумал, лол.
Перезагрузка не помогает, попробую сейчас перелогиниться и почистить всякие печеньки-файлы.
Аноним 03/04/20 Птн 22:29:03 1649622134
>>1649619
Хотя я посмотрел, оно тупо плейнтекстом шлет на сервер, нечему ломаться на клиенте, это что-то у них.
Аноним 03/04/20 Птн 22:31:16 1649625135
>>1649619
>>1649622

ну бля, ну по размеру балдюшка на полосе прокрутки видно, что там у тебя внизу приклеилась целая простыня левого кода, не? явно не 2-3 строчки ассертов
Аноним 03/04/20 Птн 22:40:17 1649630136
mp,550x550,glos[...].jpg (39Кб, 550x545)
550x545
>>1649625
Пиздос, почему-то было две копии всей ботвы и эта нижняя с пустым решением.
Гениально, Холмс! Никогда бы не догадался.
Аноним 03/04/20 Птн 22:56:10 1649637137
unnamed.jpg (37Кб, 500x375)
500x375
>>1649630
да, там есть такие "серии" задач, когда твое старое решение может пригодиться, и движок чекио объединяет заготовочный файл с тем, что у тебя там раньше было. не очень продуманно, но, думаю, второй раз на эти грабли уже не наступишь
Аноним 03/04/20 Птн 23:44:22 1649650138
>>1649239
Спасибо, записался.
Аноним 04/04/20 Суб 01:15:38 1649680139
docker.png (26Кб, 1351x648)
1351x648
Windows 10, python 3.7.6, на Анаконде. Докер жалуется на какие то права. Помогите плес.
Аноним 04/04/20 Суб 03:34:27 1649708140
Думал, с чего начать питон изучать. Решил, что я дно полное и начал с "Jason R. Briggs — Python для детей (2017)". К середине книги автор начал допускать ошибки в коде охуел от того, что их исправлять приходилось, а потом его подача превратилась в сплошной матан без нормального объяснения, что за хуйня в коде происходит. Сделал ебучий пинг-понг, охуел с пиздецомы задач в качестве домашки.
Еле как сделал 3 штуки, осталась последняя задача:
"#4. Счет в игре
А не добавить ли в игру подсчет очков? Каждый раз, когда мяч отскаки-
вает от ракетки, счет должен расти. Сделайте так, чтобы набранные очки
отображались в правом верхнем углу игрового экрана. Здесь вам приго-
дится функция itemconfi g (см. раздел «Для чего еще нужен идентифи-
катор» на стр. 186)."

Я в душе не ебу, что я делаю не так, я раз 8 переписывал код в попытках через "hit_paddle == True" заставить считать отскоки. Я не понял, я совсем дно ебаное или просто автор мудак?
Помогите с кодом, пожалуйста, нихуя же не понятно.
https://ideone.com/7KAorW
Аноним 04/04/20 Суб 04:54:59 1649725141
>>1649708

скорее, мудак автор, если вывалил кучу гуёвого кода без понятных объяснений

первый этап:
сначала создаешь переменную в ините (self.hits = 0)
где детектируется хит, увеличивай её (self.hits += 1)
далее можешь принтить в консоль и убедиться, что всё работает
сурс: https://ideone.com/pzxn7I

второй этап:
автор рекомендует заюзать метод
погуглив, можно узнать, что метод itemconfig изменяет существующий объект: https://effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.itemconfig-method
но этот объектнадо как-то создать и записать в переменную. думаю подразумевался метод Canvas.create_text: https://effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.create_text-method

в том же ините создаем канвас: self.hit_counter = canvas.create_text((50, 50), text=0)
там, где детектируется хит, вызываем метод для изменения текста: canvas.itemconfig(self.hit_counter, text=self.hit_count)
можно еще по желанию облагородить какими-нибудь строками
сурс: https://ideone.com/geoBTc


вот годный курс приблизительно по тому, что ты делаешь. я сам начал изучать питон с него, очень помогло:
https://www.coursera.org/learn/interactive-python-1
https://www.coursera.org/learn/interactive-python-2
Аноним 04/04/20 Суб 05:02:17 1649731142
Что тут происходит?
Аноним 04/04/20 Суб 05:03:58 1649732143
>>1649731
Нельзя в тред зайти, то бишь - на архивач перенаправляет. Только ответы проходят почему-то.
Аноним 04/04/20 Суб 05:18:57 1649735144
Аноним 04/04/20 Суб 05:34:19 1649738145
>>1649735
До этого только куки потёр - не исправило. Сейчас нормально.
Аноним 04/04/20 Суб 09:00:39 1649756146

>>1647702 (OP)

На сайте MIT лежит конспект очень хорошего курса "Математика для компьютерных наук. Наблюдал кто-нибудь его перевод или что то примерно такое на русском языке?
https://courses.csail.mit.edu/6.042/spring17/mcs.pdf
Заранее спасибо за ответы
P.S Ненавижу "Конкретную математику"
Аноним 04/04/20 Суб 12:13:05 1649868147
>>1649725
>первый этап:
сначала создаешь переменную в ините (self.hits = 0)
где детектируется хит, увеличивай её (self.hits += 1)
далее можешь принтить в консоль и убедиться, что всё работает

Вот это я и делал, собственно и оно не работало. Но спасибо, перечитаю
Аноним 04/04/20 Суб 12:23:42 1649875148
>>1649756
Дискретку и теорвер почитать не можешь?
Аноним 04/04/20 Суб 12:53:16 1649890149
Аноним 04/04/20 Суб 12:56:20 1649897150
>>1649725
Посмотрел твой код, теперь я понял, что шел примерно в верном направлении. Просто я пытался строки

self.hit_counter = canvas.create_text((50, 50), text='Лох')
text = f'Есть отбитие №{self.hit_count}' # text = 'Есть отбитие №%d' % self.hit_count
canvas.itemconfig(self.hit_counter, text=text)

вынести за пределы функции в самый низ, как завещал автор и сталкивался с тем, что не засчитывались очки. Ты сделал все намного проще. Я теперь хоть понял, что я Лошара, спасибо, хых.
Аноним 04/04/20 Суб 12:56:57 1649898151
В Джанго когда именно работает middleware? Я знаю что оно включается дважды во время обработки запроса. Первый раз - перед тем как request передастся во view или после? А второй - после рендеринга template или перед?
Аноним 04/04/20 Суб 15:23:15 1650056152
>>1649898
Везде работает на самом входе и на самом выходе.
Аноним 04/04/20 Суб 17:07:26 1650126153
Ньюфаг на связи.
Уже несколько раз слышал что питон медленный. но не ясно где эта медленность проявляется и какой гемор она приносит.
Как в реальном мире мешает скорость питона? Можно живых примеров?
Аноним 04/04/20 Суб 17:48:26 1650152154
>>1650126

"говорят, экскаватор меденно ездит, и ни одну гонку формулы 1 не выиграет, это правда?" с одной стороны - чистая правда, с другой - у экскаватора нет задач выигрывать гонки. понятно, что у новичка, который ещё не определился, что ему в будущем захочется - строить дома или в гонках участвовать, такие вопросы всегда будут возникать

там, где нужна скорость вычислений, и индустрия развита, написано дохуя низкоуровневых либ: numpy, tensorflow, etc.
там, где нужна скорость вычислений, но интерес публики слишком мал, денег нет, либ нет, жизни нет, питон просто не используется - нет коммерческих рейтрейс-рендеров на питоне, нет почти игровых ЙОБА движков с пбр-графонием, с 3д графикой ситуация пососная
короче, где этот язык неуместен, он не используется, и поэтому задач не возникнет (говоря простым языком: >НИНУЖНА)

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

как-то так
04/04/20 Суб 18:13:32 1650162155
Сап! Хочу в IT, начал изучать пистон, но вот думаю, намного быстрей научусь, если кто-то уже знающий будет учить, кто-нибудь посоветует курсы аля скилбокс (слишком поверхностно они учат, за оверпрайс) или гикбрейн, или что-то подобное, может какие-то сайты со сливами подобных курсов

помогите а?))
Аноним 04/04/20 Суб 18:53:52 1650189156
Аноним 04/04/20 Суб 18:55:34 1650191157
>>1649133
Мне помогает говорить с собой я говорю себе тааак сейчас надо то сделать потом то и тд.
Аноним 04/04/20 Суб 19:35:33 1650207158
Аноним 04/04/20 Суб 20:04:10 1650218159
>>1650191
а я спецэффекты генерирую:
дыыыщ
фааау
дуууууф
тататататататата
Аноним 04/04/20 Суб 20:15:47 1650226160
>>1650126
Тебе уже хороший коммент дали: >>1650152

В основном тебе производительность не актуальна, тебе надо решить задачу, а не заставить комп расходовать 0.1% вычислительных ресурсов на неё вместо 1%.

Чаще больше мифы и какие-то цифры на синтетических тестах. Про какие задачи конкретно ты говоришь?

Питон, впрочем, в первую очередь про задачи со сложной логикой, он на это заточен, а не на числодробилку и супер хайлоад.
Аноним 04/04/20 Суб 20:34:35 1650235161
При вызове функции, например:
main(hui) <--- вот это является tuple?
Аноним 04/04/20 Суб 20:51:26 1650245162
>>1650235
Если у тебя hui = (pizda, ), тогда является
Аноним 04/04/20 Суб 21:02:42 1650260163
>>1650235

смотря в каком контексте. может являться, может нет
Аноним 04/04/20 Суб 21:17:55 1650279164
Аноним 04/04/20 Суб 21:42:17 1650285165
Аноним 04/04/20 Суб 21:56:22 1650288166
А. понял, лишняя скобка
>>1650285
Аноним 05/04/20 Вск 00:02:57 1650351167
>>1650191
Моя обезьянка в голове не хочет общаться)
Аноним 05/04/20 Вск 04:06:27 1650416168
Бляяяяяя две недели жестко чилил, а теперь кажется будто вообще не учил. Тупо все ООП забыл, хотя до этого на изичах все задания по кд решал. Сеймы есть?
Аноним 05/04/20 Вск 04:15:55 1650417169
>>1648937
Двачую. Понимание порой аж со скрипом приходит.
Аноним 05/04/20 Вск 04:46:34 1650423170
Аноним 05/04/20 Вск 14:40:08 1650661171
Screenshot 2020[...].png (73Кб, 908x594)
908x594
Почему разница в выводах и нужно использовать скобки?
05/04/20 Вск 15:07:23 1650684172
>>1650661
Потому что приоритет операций такой, что сначала выполняется степень, и только потом унарный минус. Прям как в математике,
Аноним 05/04/20 Вск 15:29:15 1650727173
>>1650416
Что за задания на ооп?
Аноним 05/04/20 Вск 15:40:55 1650741174
Анончики, стоит учить Vue для веба? Читал, что его можно в связке с нашими фреймами ебашить.

И второй вопрос - что почитать миддлу? Язык уже знаю хорошо, хочется больше практики и реальных кейсов.
Аноним 05/04/20 Вск 15:48:42 1650750175
>>1650741
под практикой я конечно же не говно на пигейме имею ввиду
Аноним 05/04/20 Вск 16:08:12 1650785176
>>1650741
Сделай упаковку и распаковку зип-архивов, мидл.
Струкртура там несложная, компрессия есть в модуле zlib.
Аноним 05/04/20 Вск 16:10:39 1650791177
>>1650785
Спасибо, читал недавно на Хабре про архиваторы как раз
Аноним 05/04/20 Вск 16:58:29 1650867178
изображение.png (1Кб, 350x24)
350x24
Аноны, где почитать про эту стрелочку? Как она называется?
Аноним 05/04/20 Вск 17:05:36 1650883179
Аноним 05/04/20 Вск 17:37:05 1650923180
Аноним 05/04/20 Вск 21:18:28 1651230181
Аноним 05/04/20 Вск 21:20:58 1651237182
>>1651230
Костыли хотя бы работают, а эта хуита даже ворнингов не показывает.
Аноним 05/04/20 Вск 21:22:31 1651241183
>>1651237
Петушня должна была запилить ворнинги из коробки, но не парится. Поэтому приходится полагаться на IDE
Аноним 05/04/20 Вск 21:33:58 1651262184
изображение.png (48Кб, 792x46)
792x46
Сейчас смотрю как чувак пилит на Джанге свою веб-корзину и вижу что он часто юзает херню вроде: Product.objects.filter().first(id=pk) (как на пикриле), кто-то в курсе почему он не юзает обычный вызов Product.objects.get(id=pk), а ставит ссаное first? Типо "так круче" или что это вообще?
Аноним 05/04/20 Вск 21:35:16 1651265185
Аноним 05/04/20 Вск 21:38:26 1651270186
>>1651241
Такими темпами скоро питон превратится в жабу, на которой ни строчки без иде не написать.

from com.palletsprojects.flask.web.application import FlaskApplicationContextConfigurer
Аноним 05/04/20 Вск 21:56:27 1651307187
image.png (5Кб, 179x279)
179x279
Как посчитать среднее значение value у каждого b?
Аноним 05/04/20 Вск 21:59:11 1651313188
>>1651262
Предположу, что чувак говнокодит
Аноним 05/04/20 Вск 22:00:13 1651315189
>>1651307
for item in numbv:
..print(item["city"], sum(item["b"])/len(item["b"]))
Аноним 05/04/20 Вск 22:01:36 1651320190
>>1651307
from statistics import mean
res = {}
for d in numbv:
----res[d["city"]] = mean(d["b"]) # если ключи уникальны
Аноним 05/04/20 Вск 22:02:17 1651323191
Аноним 05/04/20 Вск 22:12:12 1651345192
>>1651320
А насколько выгоднее будет сделать так?
res = {d["city"]:mean(d["b"]) for d in a}
Везде пишут, что компрешеншены выгоднее, но насколько?
Аноним 05/04/20 Вск 22:36:08 1651360193
Аноним 06/04/20 Пнд 00:24:54 1651425194
Итак, вот скажите как есть. Вам с джангой тяжело было разбираться? Смотрю видео, листаю документацию и порой охуеваю от количества последовательностей, которые необходимо выполнить. Может нужна какая-то дополнительная база, чтобы информация более легче переваривалась?
Аноним 06/04/20 Пнд 00:47:58 1651440195
>>1651425
Джанго это максимально удобный и медленный фреймворк, на реальных проектах будет какой нибудь форк асинхронного фреймворка и низкоуровневый апи к базе. Вот там ты и охуеешь.
Аноним 06/04/20 Пнд 00:50:02 1651441196
>>1651425
Нет, просто Джанго хуета. Там изначально был допущен ряд конструктивных решений, который в общем-то предопределило его судьбу. Короче, пайтон и веб - это такое себе.
Аноним 06/04/20 Пнд 00:51:41 1651445197
>>1651270
Ну так и заебись, проще баги отлавливать.
Аноним 06/04/20 Пнд 00:52:48 1651446198
>>1651441
> ряд конструктивных решений
Каких?
Аноним 06/04/20 Пнд 01:05:41 1651449199
AIOHTTP
Аноним 06/04/20 Пнд 01:34:15 1651454200
Ебать сколько книг. И в каком порядке это все читать, чтоб дойти до нейросетей? Литература ужасно несистематизированна, непонятно где для вкатывающихся, где для отбитых гуманитариев, а где для понимающих.
Аноним 06/04/20 Пнд 01:56:07 1651459201
>>1651454
выясняй с конца, что тебе нужно, очевидно же
Аноним 06/04/20 Пнд 02:03:36 1651462202
>>1651459
А знаешь, в этом что-то есть.
Аноним 06/04/20 Пнд 02:43:30 1651469203
>>1651425
Очень стройный и хороший движок, с одной проблемой, архитектурно он синхронный, все решения заточены под запрос-ответ.

Встроена масса возможностей, при этом ими не обязательно пользоваться, если они не нужны, от них можно отказаться. Встроенные решения несложно заменить на альтернативные. Далеко не везде так.

Может тебе действительно какой-то базы не хватает, чтобы освоить, что зачем нужно и почему сделано так.
Аноним 06/04/20 Пнд 02:45:23 1651470204
>>1651469
А асинхронные не заточены под запрос-ответ, норкоман?
Аноним 06/04/20 Пнд 02:46:19 1651471205
>>1651449
Работает, но спроектирован местами немного убого. Чего вебсокеты стоят, куда более кривые, чем вебсокеты обычные, не из aiohttp. И возможностей из коробки мало.

Совсем-совсем не джанго. Но зато асинхронный.
Аноним 06/04/20 Пнд 03:30:24 1651476206
>>1651471
Как фреймворк можно сравнивать с модулем?
Ты ебанутый совсем?
Аноним 06/04/20 Пнд 03:32:01 1651479207
>>1651441
Можно узнать какие конкретно конструктивные ошибки?
Аноним 06/04/20 Пнд 03:32:29 1651480208
>>1651446
Он нихуя не знает, чмо
Аноним 06/04/20 Пнд 03:34:35 1651481209
>>1651262
Ты еблан, твой обычный вызов возвращает объект запроса в орм. First() возвращает первый объект соответствующий запросу. All() вернёт все варианты. Дно ебаное
Аноним 06/04/20 Пнд 03:36:29 1651482210
Аноним 06/04/20 Пнд 03:43:11 1651483211
>>1650867
Эта стрелочка показывает тип данных, которые возвращает метод. Полезно для ридблсти и автодокументирования кода.
Аноним 06/04/20 Пнд 03:47:32 1651484212
>>1651262
Блять ты знаешь как пишутся sql запросы? Так вот, тут ты можешь делать выборку элементов, в ней делать опять выборку и т.д.. Только ормка защитит тебя от багов, скл инъекций и десериализации
Аноним 06/04/20 Пнд 03:50:29 1651486213
Аноним 06/04/20 Пнд 03:55:00 1651488214
>>1651476
Вебсокетами из websockets удобно пользоваться. А как сделали в aiohttp совсем нет. Я имею в виду серверную часть.

Аноним 06/04/20 Пнд 03:59:20 1651492215
>>1648937
++ Такой же опыт, когда пытаешься "понять" паттерны проектирования, в итоге ния не понимаешь. Я себя доводил даже до ощущения что схожу с ума. В общем лучше всего, думаю, ознакомится с теорией основных 5-7 паттернов (погуглить, есть сайтик с подробной инфой и примерами для пайтона), почитать про них в вики, тоже разобрать примеры (но не тратить на каждый больше 5-10 минут, лучше забить на такие) и попробовать, не особо увлекаясь почитать примеры на других языках, яваскрипт,или ява.
Ну и потом изучить какой-нибудь лёгкий фреймворк, типа aiogram, scrapy, или небольшие рест при какие-нибудь, написать пару проектов, заюзав как можно больше функций и потом почитать исходники фреймворка, осознать паттерны в исходниках, осознать говно в твоём коде и наконец написать ещё один проект. Поздравляю, теперь ты понимаешь ООП чуточку лучше.
Аноним 06/04/20 Пнд 04:03:02 1651493216
>>1648937
Есть мнение, что учиться изучая код чужих людей очень хуево влияет на новичков
Аноним 06/04/20 Пнд 04:04:03 1651494217
>>1651493
Прикол в том, что ты не должен смотреть как это сделать, ты должен узнать столько, чтобы самому знать ответ на этот вопрос. Так обучение происходит намного быстрее и качественнее.
Аноним 06/04/20 Пнд 04:14:27 1651496218
>>1651493
Надо совмещать, и самому писать, и читать.

Если ты будешь только сам писать, ты в пионерство ударишься, в клепание велосипедов, не будешь знать многих паттернов и подходов, решений, которые активно используются. И вообще, не разовьёшь важный и нужный навык, разбираться в чужом коде.
Аноним 06/04/20 Пнд 09:57:07 1651582219
unknown.png (78Кб, 1451x181)
1451x181
Анончики, пожалуйста, срочно нужно, ничего не понял в задании.
Аноним 06/04/20 Пнд 10:03:51 1651585220
>>1651582
malenki_pisya = OCHE_BOLSHA_PISYA
for stroka in stroki:
....if chetni_stroka:
........continue
....for element in elementi:
........if chetni_stolbets:
............continue
........if element < malenki_pisya:
............malenki_pisya = element
Аноним 06/04/20 Пнд 10:10:22 1651589221
>>1651585
что-то не робит, можно код в репле?
Аноним 06/04/20 Пнд 10:12:48 1651591222
Аноним 06/04/20 Пнд 10:14:13 1651593223
Аноним 06/04/20 Пнд 10:16:32 1651596224
>>1651593
а можно полноценный, а то я тупенький
Аноним 06/04/20 Пнд 10:17:24 1651598225
>>1651596
Это задачка тебе, а не мне.
Аноним 06/04/20 Пнд 10:18:18 1651599226
>>1651598
можешь объяснить как сделать?
Аноним 06/04/20 Пнд 10:20:03 1651600227
>>1651582
m = [[], [], []] - список списков, типа двумерный массив
subarray = []

for row_num, row in enumerate(m):
____if row_num in S1:
________for col_num, x in enumerate(row):
____________if col_num in S2 and x % 2 == 0:
________________subarray.append(x)

Аноним 06/04/20 Пнд 10:20:43 1651601228
>>1651599
Почитай где-нибудь, как найти самый маленький элемент в простом списке, тогда псевдокод станет понятен.
Аноним 06/04/20 Пнд 10:22:22 1651603229
>>1651600
Короче, обходишь циклом. Что тебе нужно знать:
enumerate(m)
встроенная функция питона, которая возвращает пару номер элемента и сам элемент
проверяешь, входит ли нужный элемент в множество, если да, используешь его.

Всё остальное совсем тривиально, ты должен сам это знать и уметь.
Аноним 06/04/20 Пнд 10:37:04 1651612230
>>1651481
>First() возвращает первый объект соответствующий запросу
В запросе в котором либо один объект, либо нихуя

>>1651484
Ты дурачок? Я спрашиваю почему юзается first и filter вместо просто get. Поиск там идет по уникальному ийдишнику
Аноним 06/04/20 Пнд 11:28:10 1651651231
Да, вопрос не по теме треда, но что проще для вкатыша - вью или реакт? Чтобы вот просто взять и начать верстать с гуглом минимальными знаниями js/html/css
Условно нужно прикрутить адекватный вротенд к новостному парсеру, а пользоваться встроенным шаблонизатором фласка как-то уже стремно; хочется полноценное приложение для гитхаба
Аноним 06/04/20 Пнд 11:38:34 1651659232
fuckingcar.jpg (154Кб, 777x1600)
777x1600
Есть тут pygame-шизики? Малой в школу ходит, и тут приходит, и говорит: КАК ЭТО НАРИСОВАТЬ? Сука, а я тожеж никогда не любил чертить или рисовать на ЯП. Как вспомню, как в шараге на ебучем турбопаскале всякие домики рисовали... Короче, збахайте, плес. С меня тонны нефти.
Соре за шакальное качество
Аноним 06/04/20 Пнд 12:06:34 1651698233
>>1651659
Там на пять минут разобраться. Кружочки, прямоугольнички.
Делай давай.
Аноним 06/04/20 Пнд 12:14:11 1651706234
>>1651698
pygame.org до кучи еще упал, блин.
Аноним 06/04/20 Пнд 12:52:36 1651726235
>>1650218
Майкл Бей из мира Питон
Аноним 06/04/20 Пнд 15:11:49 1651818236
В чем разница между pip install и pip3 install?
У меня на винде 3й Питон (3.8 и 3.7), всегда писал pip install и все было норм. Установил на еще один комп Убунту, там терминал почем-то отказывался понимать команду pip и требовал только pip3. Почему так?
Аноним 06/04/20 Пнд 15:16:33 1651822237
Аноним 06/04/20 Пнд 15:23:14 1651826238
>>1651822
При чем тут Зен? Мне интересно почему Убунту отказывается понимать pip install
Аноним 06/04/20 Пнд 15:26:46 1651829239
>>1651818
Там какие-то анальные пляски с названиями на фоне смены версий. python, python3. С пипом то же самое, надо думать.
Аноним 06/04/20 Пнд 15:29:13 1651831240
>>1651826
А может ты хочешь второй пип? Поэтому
>Explicit is better than implicit.
Аноним 06/04/20 Пнд 15:36:58 1651837241
mm.png (10Кб, 710x474)
710x474
Можно ли как-то в networkx или еще где пары ребер графа в таком виде представлять? Ну тупа сначала если как на пикче 4 полоски высрать, и по ним уже строить остальное?
Аноним 06/04/20 Пнд 15:38:48 1651839242
>>1651837
>пары ребер графа
В смысле пары вершин = ребра.
Аноним 06/04/20 Пнд 18:28:58 1651990243
Какие книги по математике посоветуете, паралельно к изучению питона?
Аноним 06/04/20 Пнд 18:51:12 1652018244
изображение.png (14Кб, 889x165)
889x165
Какая мотивация выпиливать функционал символа '-' из строки форматирования в f-строках?
Я сначала подумал, что в питоне вовсе отказались от этого и поддерживается только в си — но нет, через % работает, через f-строку - не работает.
Аноним 06/04/20 Пнд 19:09:34 1652028245
>>1652018
В первом случае ф-строка отрабатывает без результатов, и потом отрабатывает %.
Во втором случае ты ломаешь ф-строку синтаксисом, который она не понимает.
Всё логично.
Аноним 06/04/20 Пнд 19:29:59 1652038246
>>1652028
В первом случае там не ф-строка, я просто f забыл удалить.
>который она не понимает.
Почему не понимает? Я вот как раз про это спрашивал. Разве ф-строка не подразумевается как синтаксический сахар для форматирования через %?
Нашёл, что можно написать f"{23: >6d} {34: <6d} {'ab': >6s} {'ba': <6s}", кстати.
Аноним 06/04/20 Пнд 19:34:29 1652041247
>>1651818
Хуйня "явное лучше чем неявное" никакого отношения к этому не имеет.
На линуксах долгое время был и есть второй питон. И тысячи скриптов, которые никто не хочет переписывать, вызывали его именно через python и pip. При миграции на третью версию понадобилось одновременно держать две версии питона. Чтобы не сломать старые скрипты, второй питон называют просто питоном, а чтобы юзать третий, нужно добавить 3. Это не проблема именно питона, она общая для всего линукса все эти убогие "2", ".so.2", "-ng" не от хорошей жизни появились.
А идея изначально хорошей казалась - не тащить десяток копий одной либы для разных прог. Теперь же это всех настолько заебало, что придумывают даже уже не в снап, а в докер-образы оборачивать каждую утилиту. Так и живём.
Аноним 06/04/20 Пнд 19:36:36 1652042248
>>1652041
а когда второй питон умерт, будем переобуваться обратно, пока 4й не появится к которому прихуячим новые значения, кек
Аноним 06/04/20 Пнд 20:02:48 1652059249
>>1652042
Если к тому времени не будет по докер-образу на каждый ls.
Аноним 06/04/20 Пнд 20:32:57 1652086250
>>1652038
Нет, это разные синтаксисы. Для спринтф-подобного остается %.
В ф-строки можно даже код внедрять. Читай документацию, в общем.
Аноним 06/04/20 Пнд 20:58:11 1652115251
>>1647702 (OP)
Что нужно знать, чтобы работу джуну найти?
Аноним 06/04/20 Пнд 21:46:35 1652162252
>>1652115
Блять ну посмотри вакансии браток
Аноним 06/04/20 Пнд 22:48:49 1652245253
>>1652038
f строки это развитие str.format()

вместо '{}{}{}'.format(foo, bar, baz)
пишешь f'{foo}{bar}{baz}'
и охуеваешь, как раньше без этого жил
Аноним 06/04/20 Пнд 22:50:24 1652249254
>>1647702 (OP)
Сап, петонач.
Каков порог вхождения, тяжело ли даётся писать веб-говно — нужно ли оно, если есть желание стать жуниор-питонистом?
Опишите петон тремя словами.
Аноним 06/04/20 Пнд 22:54:38 1652256255
>>1652249
порог вхождения в питон довольно низкий, но если совсем новичок, то лучше поизучать алгоритмы и всякое разное, используя какие-нибудь Си.
Веб-говно, если ты имеешь в виду бекенды, то пишется отлично, это одно из частых применений питона.
"нужно ли оно" хуй знает что ты тут хотел сказать
Описал тебя двумя словами двачер калоед
Аноним 06/04/20 Пнд 22:55:28 1652257256
>>1652256
> Описал тебя
читать разучился, да?
Аноним 06/04/20 Пнд 22:59:52 1652266257
>>1652249
Иди в циклотрен вкатунов.

>>1652249
>Опишите петон тремя словами.
"Не для тебя"
Аноним 06/04/20 Пнд 23:03:11 1652273258
>>1652249
> Каков порог вхождения
Очень низкий, считай псевдокод.

> тяжело ли даётся писать веб-говно
Легко.

> нужно ли оно, если есть желание стать жуниор-питонистом?
Нужно, но имей в виду, что из-за лёгкости питона конкуренция ебически высокая.
Аноним 06/04/20 Пнд 23:17:30 1652287259
>>1652273

в 3.8 в синтаксис кто-то насрал моржами и слэшами в аргументах
Аноним 06/04/20 Пнд 23:42:05 1652309260
>>1652287
> моржами
Нужно в одном случае из ста.

> слэшами в аргументах
Не нужно. Как и keyword-only. Жду, когда ещё добавят хуиты типа spaceship <=> operator.
Аноним 06/04/20 Пнд 23:47:47 1652311261
>>1652309

бомбануло, что они при этом еще и засрали интуитивный синтаксис, типа "as" вместо моржа и тупль для позишн-онли аргументов вместо слэша между запятых
Аноним 07/04/20 Втр 01:31:27 1652352262
>>1652059
Да не, тут по-моему извечная борьба интеграции и разбиения.

Можно каждый ls выделить в отдельный микросервис, но ему надо взаимодействовать с внешним миром всё равно. Вот сейчас его помещают в его маленький уютный мирок в зафиксированном намертво окружении, но потом окажется, что с внешним миром он взаимодействует через API, а API, сюрприз, тоже может меняться в зависимости от версии. А внутри окружения могут быть какие-то модули с критическими уязвимостями. И так вернёмся к тому, с чего начинали.

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

Нет универсальной пилюли.
Аноним 07/04/20 Втр 01:36:26 1652353263
>>1652042
Даже внутри третьего питона не всё так очевидно. Его постоянно дорабатывают, появляются новые фичи, а некоторые старые объявляются как depricated. И вот ты пишешь софт, используешь фичу, а ещё потом объявляют
> Deprecated since version 3.7, will be removed in version 3.9
(особый лес такого с 3.10)

То есть у тебя даже при вызове python3 нет гарантии, что код всегда работать будет.
Аноним 07/04/20 Втр 05:51:19 1652373264
https://pastebin.com/KxzJBW7X

кто объяснит почему вывод
Calling method on Base Class
Calling method on Right Subclass
Calling method on Left Subclass
Calling method on Subclass
[Finished in 0.1s]

Аноним 07/04/20 Втр 05:54:13 1652374265
Снимок экрана о[...].png (73Кб, 481x616)
481x616
Снимок экрана о[...].png (52Кб, 725x197)
725x197
>>1652373
пиздец меня бомбит от этой хиуты

в книжке написано, что МРО идет слева направо, а в реале справа налево
Аноним 07/04/20 Втр 05:56:00 1652375266
>>1652374
>>1652373

class SubClass(LeftSubclass, RightSubclass):
num_sub_calls = 0

def call_me(self):
super().call_me()
print("Calling method on Subclass")
self.num_sub_calls += 1

>>> SubClass.__mro__
(<class 'inh_oop.SubClass'>, <class 'inh_oop.LeftSubclass'>, <class 'inh_oop.RightSubclass'>, <class 'inh_oop.BaseClass'>, <class 'object'>)

а в реале справа налево
Аноним 07/04/20 Втр 05:56:18 1652376267
>>1652375
т.е. первым ищется метод в Райт класс
Аноним 07/04/20 Втр 06:07:57 1652377268
>>1648937
читай книжки вумные
https://dropmefiles.com/UNVJ0

я сам сквозь эту поеботу с огромным трудом иду
блять сколько всякой хуиты придумали
Аноним 07/04/20 Втр 06:19:00 1652379269
Аноним 07/04/20 Втр 13:50:03 1652525270
>>1652379
Эх, помню как на работе, недо-ждун с пеной у рта мне доказывал что "а чо тут такова, один раз жи, всё норм будет", после того как заменил логику без глобала на глобал.
Получилось выиграть аж 2 строчки кода.
Аноним 07/04/20 Втр 16:55:46 1652680271
Аноним 07/04/20 Втр 16:58:16 1652686272
Снимок экрана о[...].png (93Кб, 624x683)
624x683
Снимок экрана о[...].png (52Кб, 725x197)
725x197
Такой код: https://pastebin.com/RmfQyFcw

Результат такой
Calling method on Base Class
Calling method on Right Subclass
Calling method on Left Subclass
Calling method on SubClass
[Finished in 0.1s]

Получается, что SubClass.call_me() всегда вызывает указанный метод у всех суперклассов (при его наличии)? А как же правило лишь о первом найденном совпадении? Разве SubClass.call_me() не должен вызвать лишь первый найденный у своих суперклассов метод, считая слева направо (здесь: LeftSubClass)

К тому же непонятен порядок печати. Получается такой порядок исполнения кода, из дебаггера https://www.onlinegdb.com/online_python_debugger

16 SubClass.call_me()
17 SubClass.super().call_me() # вызывает call_me() первого слева суперкласса LestSubClass
6 LeftSubClass.call_me()
# тут странность: на строке 7 вызывается не сall_me() суперкласса
# LeftSubClass - BaseClass, а RightSubClass.call_me()
7 LeftSubClass.super().call_me() # вызван RightSubClass.call_me()
11 RightSubClass.call_me() # RightSubClass вызывает сall_me() у BaseClass
12 BaseClass.call_me() # print("Calling method on Base Class")
# тут начались странности:
# print("Calling method on Right Subclass")
# print("Calling method on Left Subclass")
# print("Calling method on SubClass")
Получается, что на строке 7 вызывается не сall_me() суперкласса LeftSubClass (BaseClass), а RightSubClass.call_me(). Почему так? И почему такой порядок принтов?

вот что написано в книжке:
First call_me of Subclass calls super().call_me() , which happens to refer to LeftSubclass.call_me(). LeftSubclass.call_me() then calls super().call_me(), but in this case, super() is referring to RightSubclass.call_me(). Pay particular attention to this; the super call is not calling the method on the superclass of LeftSubclass (which is BaseClass), it is calling RightSubclass, even though it is not a parent of LeftSubclass! This is the next method, not the parent method. RightSubclass then calls BaseClass and the super calls have ensured each method in the class hierarchy is executed once.

Кто понмиает\знает, почему тут:
1. "the super call is not calling the method on the superclass of LeftSubclass (which is BaseClass), it is calling RightSubclass, even though it is not a parent of LeftSubclass!"?
2. почему "LeftSubclass.call_me() then calls super().call_me(), but in this case, super() is referring to RightSubclass.call_me()"?
3. что такое "the next method"?
Аноним 07/04/20 Втр 17:01:10 1652694273
Как сделать так, чтобы метод класса (через @classmethod) при вызове от объекта выдавал ошибку? И какое исключение для этого лучше?
Аноним 07/04/20 Втр 17:03:10 1652697274
Бамп
Аноним 07/04/20 Втр 17:08:26 1652703275
>>1652694
Можно попробовать написать свой декоратор, который будет проверять, что тип параметра не является текущим классом (каким-нибудь inspect.isclass). Ну и кидать какой-нибудь TypeError.
Аноним 07/04/20 Втр 19:00:58 1652800276
>>1652703
Скорее всего пытаешься строить велосипеды, когда есть typing или существующие на нем надстройки для проверок

>>1652694
Через type(object) == type (для класса будет True)
Аноним 07/04/20 Втр 19:04:41 1652805277
Есть лист со словарями вида
list = [{'a':'foo', 'b':'bar', 'c':1}, {'a':'foo', 'b':'bar', 'c':2}, {'a':'foo', 'b':'bar', 'c':3}, {'a':'hui', 'b':'pizda', 'c':1}, {'a':'hui', 'b':'pizda', 'c':2}
Как эту хуйню лучше всего свернуть, чтобы вместо словарей с постоянно повторяющимися ключами был 1 словарь, а ключи "с", которые от словаря к словарю разные - склеить в лист?
Аноним 07/04/20 Втр 19:47:49 1652863278
Аноним 07/04/20 Втр 20:06:24 1652878279
>>1652863
Нет, ключи повторяются, но встречаются различия
>{'a':'foo', 'b':'bar', 'c':1}
>{'a':'hui', 'b':'pizda', 'c':1}
Так что так не выйдет
Аноним 07/04/20 Втр 20:25:47 1652897280
>>1652878
Ну тогда так https://ideone.com/n7rOMi
При необходимости можно ещё раз пройтись и сконвертировать сеты в списки или одинарные значения.
Аноним 07/04/20 Втр 20:43:01 1652920281
Аноны, всем доброго вечера.
Пытаюсь разобраться с вот этим https://github.com/vanyasem/VK-Scraper парсером, не зная основ.
Что сделал?
Установил необходимые requests, tqdm, vk_api, youtube_dl
Зашёл в idle , запустил, почитал ошибки
В папке vk_scraper создал vk_args.txt и вписал туда логпасс от своего фейка
Айди пациента вписал в сам app.py в 49 строке
И снова соснул с ошибками на строки 496 и 472
https://github.com/vanyasem/VK-Scraper/blob/master/vk_scraper/app.py
Анон, подскажи позязя
В какие строки в итоге вписывать свой айди и пасс, а в какую - айди владельца альбомов с фото? И как правильно прописать destination для винды?
Аноним 07/04/20 Втр 22:43:45 1653051282
1
Аноним 08/04/20 Срд 00:12:34 1653115283
Как в django объединить результаты нескольких queryset в один?..
Аноним 08/04/20 Срд 15:13:41 1653448284
>>1647702 (OP)
Переставил себе ось, все почитил, июо чувствовал себя за ПК как ОКРщик, быдто даже дышал этой пылью. Ну и соотвественно проебал кряк пичарма ну не плотить же, так вот, помогите с кряком ибо где его искать, один бог знает, а как мы знаем, он уже умер и убили его мы. С меня как обычно человеческое спасибо
Аноним 08/04/20 Срд 16:03:40 1653477285
>>1653448
Плати за контент сам и тебе будут платить другие, дилетант блять
Аноним 08/04/20 Срд 16:07:32 1653481286
>>1653115
Ну смари малёк ты сам откуда ? С какого города ?
Аноним 08/04/20 Срд 16:44:21 1653510287
>>1653448
subltext3 тоже может исполнять код внутри, а пичарм гавно тормозное
Аноним 08/04/20 Срд 16:46:32 1653515288
>>1653448
Поставь бесплатный комюнити. Лишь би пиздануть какой-то йоба ультимейт 9000.
Аноним 08/04/20 Срд 17:07:51 1653531289
>>1653510
Кстати, как сделать, чтобы в саблайме код не в новой вкладке каждый раз запускался?
Аноним 08/04/20 Срд 17:50:53 1653559290
>>1647702 (OP)
Cап! Помогите с count():

Допустим, мне нужно найти "near" в тексте. При использовании count("near") также засчитает все производные слова - nearly и прочее. Как без регулярок решить эту проблему? в голову приходят только колхозные варианты - добавить пробел в конец поискового паттерна но тогда слова в конце строк считать не будет
Аноним 08/04/20 Срд 17:51:55 1653560291
>>1653559
>мне нужно найти "near" в тексте
количество "near" в тексте*
быстрофикс
Аноним 08/04/20 Срд 17:59:02 1653565292
>>1653559
Разрезать на слова и удалить неалфавитные символы.
Аноним 08/04/20 Срд 18:12:10 1653575293
>>1653565
А ведь и правда. Спасибо!
Аноним 08/04/20 Срд 18:16:05 1653581294
>>1653575
Я ещё пизже способ придумал - через str.find пройтись по строке, и края найденного слова проверять на isalpha.
Аноним 08/04/20 Срд 18:19:39 1653584295
Доставьте гайд по асинхрощине вообще прям для самых конченных даунов если таковой вообще существует
Хочу переписать парсер с обычных реквестов с пул экзекутером под aiohttp и посмотреть как оно ваще. Но пока тупо не понимаю че за корутины, как они друг с другом взаимодействуют и почему это работает так быстро даже с наличием GIL'а
Аноним 08/04/20 Срд 18:22:45 1653587296
>>1653584
Асинхронщина работает просто - ты запускаешь какое-то действие и коллбек для него, который надо выполнить, когда оно отработает.
В хттп реквесте 99% времени это ожидание данных, так что можно ждать много ответов одновременно.
Вот и всё.
Аноним 08/04/20 Срд 18:28:41 1653593297
image.png (128Кб, 674x715)
674x715
Долбоеб на аноне хочет понять, как исправить ошибку и как её больше не допускать и просит помощи анонов
Аноним 08/04/20 Срд 18:28:55 1653594298
Аноним 08/04/20 Срд 18:33:06 1653600299
>>1653593
> пытаться деструктурировать строку
> написать if с большой буквы
> не поставить двоеточия
> не поставить отступы
> IDLE
Аноним 08/04/20 Срд 18:37:57 1653603300
>>1653593
у тебя внутри живет дед в курсе???
Аноним 08/04/20 Срд 18:40:46 1653609301
>>1653593
invalid syntax потому что If с большой

обрати внимание на использование input - там должен быть .split, так как на вход ты пишешь строку и функция input возвратит тебе строку (а не 3 элемента)

а также отступов нет - программа даже визуально красивее смотрится когда есть отступы

двоеточий нет после if-else-elif - в пайтоне это надо делать

желательно a==b и тд ставить в () - так будет красивее
Аноним 08/04/20 Срд 18:58:15 1653618302
image.png (206Кб, 1349x715)
1349x715
>>1653609
Целую в щечку, спасибо, все работает, как надо
Аноним 08/04/20 Срд 19:16:21 1653631303
Аноним 08/04/20 Срд 19:25:07 1653639304
Аноним 08/04/20 Срд 19:42:47 1653656305
>>1653639
>>1653594
>>1653587
Спасибо. Я уже успел забанится за слишком большое кол-во запросов на переписанном парсере.
Аноним 08/04/20 Срд 19:47:21 1653660306
А насколько быстро можно усвоить стек питон + фласк, монго, докер, сокет.ио, json-rpc, меркуриал, редис, мемкешд, xml, протобаф?
Аноним 08/04/20 Срд 19:51:20 1653665307
>>1653660
Смотря какой бекграунд. Можно и за месяц +-.
Аноним 08/04/20 Срд 19:57:59 1653676308
Аноним 08/04/20 Срд 20:16:27 1653702309
>>1653665
Немного трогал голый питон, по работе пишу на нем всякие простенькие скрипты для аналитики, также по работе делаю несложные запросы к бд на sql-диалекте яндекса (дома трогал постгрес, MS SQL Server, но в целом одно и то же). А так опыта программирования нет, я ПМ.
Аноним 08/04/20 Срд 20:56:52 1653725310
270278025207827[...].png (3Кб, 603x51)
603x51
Бля, хуле это мудло пишет мне при попытках обновить/установить пакеты в виртуальной среде:

Could not install packages due to an EnvironmentError: [WinError 5] Отказано в доступе: 'c:\\program files\\python38\\lib\\site-packages\\pip-19.2.3.dist-info\\entry_points.txt'

Но у меня-то не 3.8 в venv стоит, а 3.7! Какого хуя вообще происходит? Откуда оно там взялось блять?
Аноним 08/04/20 Срд 21:02:47 1653732311
>>1653725
Сейчас набегут пердоли и скажут, что нужно запускать на правильной ОС.
Аноним 08/04/20 Срд 21:05:56 1653734312
>>1653725
А схуя ли у тебя питон в програм файлс? Вот и нет прав туда писать.
Ищи в программах и удаляй. И path надо будет подправить, там должно быть.
Аноним 08/04/20 Срд 22:51:28 1653788313
wtf.png (21Кб, 1425x320)
1425x320
Это рофлы такие? Почему дебагинг мне говорит об ошибке на нулевой (!) строке моего основного шаблона?
Очевидно что он крашнулся не на нулевой строке этой template (я даже примерно догадываюсь где), вопрос в том, почему он мне пишет об этом?..
ну это ж 3я версия джанги блин, ну как такой уебищный дебаг вообще возможен?
Аноним 08/04/20 Срд 23:38:46 1653825314
Сап, ананасы! Помогите неофиту.
Допустим, есть строка с предложением без знаков препинания.
Какими способами можно расставить в нём запятые по заданной грамматике?
Первое, что пришло в голову, это сделать список слов и предлогов, чтоб в цикле искать по ним подстроки и подставлять запятые по индексам, но мне кажется, что существует подход получше.
Аноним 08/04/20 Срд 23:45:08 1653828315
>>1653825
Невозможно.
Почему предложение без знаков препинания читать сложно? Потому что способов их расставить много, и от них сильно меняется смысл. И читающему приходится догадываться о смысле по контексту.
Самый реалистичный вариант - машинное обучение. Там, может, что-то да получится.
Аноним 09/04/20 Чтв 00:05:52 1653832316
>>1651612
Вангую, для того чтобы не ебаться с экспешенами Model.DoesNotExist или как там в джанге.
Аноним 09/04/20 Чтв 00:27:38 1653837317
>>1653828
Это и так понятно, я и не ставлю целью воспроизвести синтаксис целиком, только отдельные правила вроде "..., a ...", "например, ...", "... потому, что ..." и так далее.
Мой вопрос был только в способе поиска и подстановки таких паттернов в строке.
Аноним 09/04/20 Чтв 00:44:13 1653840318
>>1653832
>не ебаться с экспешенами
То есть вместо того чтоб адекватно получить эксепшн и обработать его, мы условно ставим self.value = None? Совет на все времена нет Осталось только из каждой функции None возвращать, когда получаем непредвиденное значение (и заодно проверять результат каждой функции на None)
Аноним 09/04/20 Чтв 01:31:20 1653847319
Стикер (255Кб, 512x496)
512x496
>>1653593
Очень нравятся отличия между ситуациями "2" и "3"
Аноним 09/04/20 Чтв 01:35:41 1653849320
А что там, кстати, по новой Джанге? Скоро повсеместно переходить начнут, как думаете? И насколько всё изменит это введение асинхронщины?
Аноним 09/04/20 Чтв 03:50:02 1653867321
>>1653560
for word in words:
if word[:4] == 'near':
...
Аноним 09/04/20 Чтв 04:00:25 1653868322
Снимок экрана о[...].png (36Кб, 729x164)
729x164
Снимок экрана о[...].png (18Кб, 543x164)
543x164
откуда тут super().__init__()?

я понимаю что класс наследуется от object

но ...
Аноним 09/04/20 Чтв 04:05:27 1653869323
image.png (1903Кб, 1320x720)
1320x720
Аноним 09/04/20 Чтв 04:22:34 1653870324
Стикер (319Кб, 433x380)
433x380
>>1653559
>Как без регулярок решить эту проблему?
Но это же типичный вопрос именно для регулярок. Они идеально для этого подходят, быстрые и оптимизированные.
Аноним 09/04/20 Чтв 08:30:16 1653907325
1EF48FED-D61C-4[...].jpeg (46Кб, 480x365)
480x365
Аноним 09/04/20 Чтв 12:00:38 1653997326
>>1653559
PATTERN = re.compile(r'\bnear\b')
не бойся регулярок, зумерок
Аноним 09/04/20 Чтв 12:10:27 1654000327
Существуют ли Junior Python разработчики? Мне кажется, что нет. В условиях повышения требований нанимают тех, кто уже вырос из данного определения. И что должен уметь Junior/Middle? Какие сопутствующие технологии(если говорить про бэкэнд веба)? В вакансии не посылать, там 90% ебанутых HRш, лепящих всё подряд.
Аноним 09/04/20 Чтв 12:45:04 1654011328
>>1653997
> re.compile
Кстати, интересно, почему так до сих пор пишут, если, вроде как, пайтон их всё равно на ходу компилирует и кеширует. Разве что, чтобы паттерн в какую-нибудь красивую переменную засунуть.
Аноним 09/04/20 Чтв 13:05:52 1654017329
>>1654000
>там 90% ебанутых HRш, лепящих всё подряд
сильно преувеличил, поскроллишь штук 10 и найдешь вполне адекватные требования
вообще это классный двачевский для оправдания самого себя, я так понимаю ты даже не открывал вакансии
Аноним 09/04/20 Чтв 13:06:18 1654019330
Аноним 09/04/20 Чтв 14:13:22 1654055331
>>1654000
Существуют, ведь до мидла надо ещё вырасти, и это не 1-2 месяца занимает.
Зря ты так к вакансиям относишься, читай только требования(технологии именно) и поймёшь что те е надо учить.
Аноним 09/04/20 Чтв 16:25:37 1654158332
>>1654000
Мало кто напишет "Джуниор", сразу ломанутся те, кому ещё в стажёры рано.

И не понятно, почему считается, что джуниор это тот, кто совсем чего-то знает. Вообще, на других квалифицированных специальностях после ВУЗа (4-6 лет!) ты идёшь на работу и тоже на младшего. А двочеры почему-то считают, что вот можно полгода поучиться и сразу идти работать.

Вообще, может стоит поискать вакансии в QA на какое-то время, но это именно в фирму к разработчикам идти надо. Так будет реальный опыт работы на реальном производстве.
Аноним 09/04/20 Чтв 16:58:17 1654175333
Анон, подскажи, как сделать двухмерный список на основе другого двухмерного списка через генератор?
Аноним 09/04/20 Чтв 17:06:16 1654185334
Что в форматировании/проектировании питоновского кода мгновенно может выдать во мне пришлого еблана?
Скажем, я хорошо разговариваю по английски и дружу с грамматикой, но говорю с дичайшим руснявым акцентом, отчего все на меня будут косо смотреть. Что аналогия для этого в Пистоне?
Аноним 09/04/20 Чтв 17:09:01 1654190335
Аноним 09/04/20 Чтв 17:10:40 1654194336
>>1654185
Игнорирование PEP8, например.
Аноним 09/04/20 Чтв 17:32:07 1654209337
>>1654190
Спасибо! а если нужно применить функцию к каждому отдельному объекту в матрице? Например: создать из 2-х мерной матрицы чисел, матрицу из этих же самых чисел но типа str?
Аноним 09/04/20 Чтв 17:34:07 1654211338
Что можете посоветовать неофиту для вката, что нибудб подробное по типу лутца, только попизже и без воды? Хочу сильную базу прочитать.

Уже прочел укус питона, щас читаю грокаем алгоритмы
Аноним 09/04/20 Чтв 17:35:50 1654212339
>>1654209
Все разобрался сам, оказывается все просто, через list(map())
Аноним 09/04/20 Чтв 17:37:34 1654216340
>>1654209
map(lambda row: map(str, row), matrix)
или
matrix = [str n for row in matrix for n in row]
Аноним 09/04/20 Чтв 17:45:52 1654218341
899661AF-172A-4[...].jpeg (907Кб, 1441x1889)
1441x1889
>>1654158
А че если им напиздеть что я окончил техновышку (на самом деле я гуманитарий) сказать им что знаю виндовс как 5 пальцев и готов работать за еду первое время. Есть шансы что возьмут? Я ебаный гуманитарий и учу питон, так хоть погрузился бы в атмосферу айти и было бы проще и быстрее вкатываться..
Аноним 09/04/20 Чтв 18:07:20 1654229342
>>1654218
>готов работать за еду первое время
Не думаю, что это кому-то интересно. Вот реально, мало-мальски большим работодателям это не интересно. Интересно хороших людей найти, а не чуть-чуть сэкономить. Хотя если как-то вбросишь, что деньги не главное на начальном этапе, то может просто отношение лучше будет.

>>1654218
>А че если им напиздеть что я окончил техновышку (на самом деле я гуманитарий)
Скорее всего с тобой начнут разговор с того, где ты учился, на каком факультете, тема курсовых и диплома и т.п. Не пытайся обманывать в таких вещах, это сразу вскроется и отношение будет соответствующее. Скажи просто из серии, что вот хоть и гуманитарий, но всё равно в первую очередь компы интересовали и вообще именно в айти хочешь.

Вакансия смотрится интересной, но не факт, что попасть туда просто. Но попробуй, почему нет.
Аноним 09/04/20 Чтв 18:23:49 1654240343
>>1654229
Благодарю. Добра тебе.
Аноним 09/04/20 Чтв 19:12:43 1654277344
>>1654185
>отчего все на меня будут косо смотреть
лол что за предрассудки, всем похуй успокойся
Аноним 09/04/20 Чтв 19:17:23 1654285345
image.png (35Кб, 617x315)
617x315
Захотел тут по человечески перекомпоновать проект - вынести весь свой говнокод в отдельную директорию и попробовать накатить докер заодно.
Обесните, (на пике открыт bot.py) почему пичарм подсвечивает, что якобы некоторых модулей не существует? Хотя они всегда находились рядом, но сейчас их просто всех вместе перенесли из ./ в ./src/
Более того, проект работает. Я где-то (да) объебался или пичарм бесноебит?
Аноним 09/04/20 Чтв 19:22:44 1654287346
Аноним 09/04/20 Чтв 19:23:47 1654288347
>>1654285
Пометь папки как source
Аноним 09/04/20 Чтв 19:45:13 1654301348
>>1649133
опыт програмирования со временем прийдет
Аноним 09/04/20 Чтв 19:51:21 1654310349
>>1654285
Лучше создай пакет с __init__ файлом, и да скачай isort, а то глаза болят от этих импортов.
Аноним 09/04/20 Чтв 20:13:06 1654331350
>>1653997
Тебе, долбоебу, написали - без регулярок. Нет, надо высраться
Аноним 09/04/20 Чтв 20:32:09 1654358351
>>1653997
Небось, препод запретил ему юзать регулярки и дал список разрешённых функций.
Аноним 09/04/20 Чтв 21:26:19 1654384352
>>1653840
Да, именно так. try except не всегда удобно.

value1 = .first()
value2 = .first()
value3 = .first()
if value1 and value2:
elif value3 and value1:
elif value2 and value3:

Че-нибудь такого рода. Но тебе виднее, дело вкуса (а еще try except по производительности хуже:))
Аноним 09/04/20 Чтв 21:37:22 1654389353
>>1654310
>>1654288
>>1654287
Благодарю за оперативное пояснение. Все поправил, оптимизировал импорты, добавил __init__.py
А ещё я успешно собрал докер образ, запулил его на вдс и развернул помощью компоуза, оч все понравилось, ппц как удобно всё придумано блин.
Мож нахуй ваще этого удава и попробовать вкатится в девопсы
Аноним 09/04/20 Чтв 21:40:45 1654390354
>>1654384
Пока в пщ-треде сетуют на отсутствие эксепшенов, здесь сетуют на их наличие, лол.
Аноним 09/04/20 Чтв 21:54:58 1654396355
1586462018876.jpg (46Кб, 551x359)
551x359
Что такое аргумент self? Покажите на пальцах, а то везде слишком абстрактно описано. Нужен максимально понятный пример, а то я ебанусь и больше не встану.
Аноним 09/04/20 Чтв 22:03:37 1654402356
>>1654396
При вызове метода объекта ему автоматически передается сам объект первым аргументом. Это и есть селф.

https://ideone.com/ECUTRq
Т.е. ты вызываешь как в строке 10, происходит то что в строке 11.

Аноним 09/04/20 Чтв 22:10:05 1654407357
>>1654396
Есть class Dom.
В нормальном доме у тебя будут атрибуты dweri, okna, sralnik и методы otktit_okno, smit_sralnik. Окна могут быть деревянными или пластиковыми, одннокамерными, двухкамерными, разного цвета и т.д. Self нужен для того, чтобы при изменении этих параметров или выполнении каких-то действий всё это происходило в конкретном доме, а не во всех домах вообще. Потому что окна есть и у машин и у твоих соседей в домах. Но ты-то создал свой Дом(экземпляр класса) и хочешь производить действия конкретно со своим эксземлпяром.
Аноним 09/04/20 Чтв 22:57:29 1654436358
>>1654358
Это задание на checkio
Аноним 09/04/20 Чтв 23:28:51 1654455359
018b6db708eeb52[...].png (3385Кб, 1192x1296)
1192x1296
>>1654436
Там есть довольно странные задачки. Например https://py.checkio.org/en/mission/unix-match-part-1/
Хочется решить как-то просто базовыми средствами, но понимаешь, что придется городить огрод. Поэтому решение заключается в идиотской переделке в регексп.
Не очень понимаю учебную ценность такого.
Аноним 10/04/20 Птн 00:56:14 1654479360
Я совсем новый ньюфаг в питоне, разбираюсь с черепахой. У меня встал вопрос: я пишу код, потом в командной строке запускаю его, черепаха идет по нужным координатам с заданными параметрами - ОК, получается.
Вопрос - как мне менять ее положение уже во время выполнения программы? Я вижу, что в документации идет >>> приглашение к каждому действию, но не понимаю как совместить режим исполнения командной строки и режим питона.
Аноним 10/04/20 Птн 01:35:22 1654485361
>>1654479
Если я правильно тебя понял - ты запускаешь файлы через cmd типа
>python huepaha.py
А
>документации идет >>> приглашение к каждому действию
Это сам интерпретатор, просто напиши python в cmd или в папке найди исполняемый файл
Аноним 10/04/20 Птн 01:44:41 1654486362
>>1654455

ага, это типа задачка для fnmatch или glob. ты можешь решить задачу за 30 минут базовыми методами, а можешь заюзать либу и за 30 секунд пройти все чеки. я считаю, проработать вопрос самому, а потом глянуть на солюшны других людей и увидеть более валидное решение - это довольно поучительно, и в этом один из главных приколов чекио лично для меня. а в данном случае импорт fnmatch запрещен чекером чекио, видимо, по причинам безопасности, и ты всё равно вынужден будешь напилить ненужный велосипед. кек

ну это чисто технопроблема, а вот что некоторые задачки без специального знания какого-то алгоритма решить почти невозможно - это конкретный проёб. там, где всякая комбинаторика, особенно сложно. ты или пишешь прикольный алгоритм на 10 строк, о котором автор задачи узнал в универе, или по хардкору хуячишь кучу солверов и решаешь задачу численно, если захочешь столько ебаться, конечно. но всё равно обсираешься, потому что ассерт на сервере проверяет какой-то корнер кейс, который справедлив конкретно для "красивого решения" и не приемлет альтернативных решений в принципе
Аноним 10/04/20 Птн 01:51:42 1654489363
15056074352610.jpg (32Кб, 500x500)
500x500
Подскажите эффективный способ хранить данные типа ключ : значение, если ключ - интовый уникальный идентификатор, а - просто инт. { 123125 = 12, 12319023812= 1293812938912, ...}

Я хотел хранить в дикте, но на стаковерфлоу сказали что это будет неэффективно при динамически меняемом наборе ключей.

Аноним 10/04/20 Птн 01:55:03 1654491364
>>1654489

у тебя терабайты данных?

если нет, то забей. там просто очкуют, что говноумник в комментах их "срежет", уровнив их авторитет, вынудив извиняться и дополнять, поэтому стараются охватить своим ответом ВСЁ
Аноним 10/04/20 Птн 01:55:18 1654492365
>>1654277
>всем похуй
Ну-ну
Один раз пидором назовут и потом уже будет такая кличка. Меня батя предупреждал
Аноним 10/04/20 Птн 01:56:47 1654493366
>>1654491
Не терабайты, но мне очень критична скорость обработки, очень.
А именно итерироватие / поиск элемента.
Аноним 10/04/20 Птн 01:57:53 1654494367
>>1654493

ебош базу данных тогда
Аноним 10/04/20 Птн 01:58:45 1654495368
хотя в новых йоба диктах cpython может быть какая-нибудь оптимизация, и всё будет работать с той же скоростью
Аноним 10/04/20 Птн 01:58:54 1654496369
>>1654493
Если тебе их еще и хранить надо, бери No-SQL какой-нибудь, считай тот же словарь
Аноним 10/04/20 Птн 01:59:12 1654497370
>>1654390
>пщ-треде
Шо?

>>1654493
>dict
>мне очень критична скорость обработки
Ну почему никто не читает про алгоритмы и структуры данных?..
Аноним 10/04/20 Птн 02:07:10 1654499371
>>1654494
Ты шутишь? Я пока буду к ней стучаться/получать ответ, я триcта раза смогу это все обойти.

>>1654496
Какой носклюль? Есть же примитивные типы в питоне, все что поверх этого - тормознутый оверхед

>>1654497
И чем в дереве плоха скорость обработки?
В крестах std::map работает быстрее листа при достаточном количестве элементов

Я ж не знаю что у вас быстрее/что медленнее работает, поэтому сюда и пришел
Аноним 10/04/20 Птн 02:11:37 1654501372
>>1654499

что у тебя за задача?
Аноним 10/04/20 Птн 02:15:17 1654502373
>>1654501
Хранить структуру данных состоящих из пары инт инт.
Наиболее быстрый обход структуры и поиск элемента по значению.

В плюсах это либо std::vector< std::pair<int, int> >, либо std::map<int, int>. Первое работает быстрее при небольшом количестве элементов.
Аноним 10/04/20 Птн 02:18:39 1654505374
>>1654499
> Какой носклюль? Есть же примитивные типы в питоне, все что поверх этого - тормознутый оверхед
Ну какбе питон тоже не заточен под скорость.
Я думаю та же редиска будет быстрее начиная с некоторого довольно небольшого объема.
Аноним 10/04/20 Птн 02:30:00 1654507375
>>1654502
>std::map<int, int>
Может быть unordered_map всё-таки? map же говно ебаное с плохой константой.

Дефолтный словарь это unordered_map, время доступа константное.
Попробуй from typing import TypedDict ещё. Я чёрт его знает что это, просто проверил если ли типизированные словари - и они нашлось.
Аноним 10/04/20 Птн 02:33:17 1654508376
>>1654507
Для 100 элементов пока этот хеш вычислится я чай успею сделать
При больше 1000-10000 да, решает.
Мап еще и может оптимизировать поиск до логарифма, не знаю правда как.

>import TypedDict
Ну очевидный оверхед над обычными типами, они то может удобнее и практичнее но точно не быстрее

>Дефолтный словарь это unordered_map
Даже с интами, питон все равно хеш считает?


Аноним 10/04/20 Птн 02:44:33 1654512377
>>1654508
Мап - сортированное дерево, вот тебе и логарифм для поиска в виде высоты дерева.
Стоит его использовать, только если тебе эта сортировка нужна постоянно. Во всех остальных случаях как ты и сказал - вектор на малом количестве и хеш-таблица на большом. Мап на любом количестве проиграет вектору или таблице, скорее всего - ведь там даже доступ к элементу за логарифм, лол.

>TypedDict
Да я сейчас почитал, это вообще не то. Название обмануло меня.
Просто в нумбе (http://numba.pydata.org/numba-doc/latest/user/jitclass.html#specifying-numba-typed-containers-as-class-members) typed-dict это совсем другое, там явно тип указывается, и потому я подумал что другой TypedDict это тоже что-то подходящее.

Аноним 10/04/20 Птн 04:18:04 1654519378
>>1648204
Дампани запрос в логи или принтом и посмотри, где ошибка.
Аноним 10/04/20 Птн 04:24:24 1654520379
>>1654508
>Даже с интами, питон все равно хеш считает?
Да, конечно. Но подсчёт хеша очень быстр и о нём в принципе не нужно думать, актуальны могут быть вопросы дальнейшего поиска, добавления и удаления элементов.

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

Словари в питоне очень-очень быстры и не надо пытаться что-то придумывать вместо них в таком случае. Если ты пытаешься уже здесь оптимизировать, то тебе питон не нужен.

Поиск-удаление это O(1) в норме. Но в плохом случае может доходить до O(N), это если неудачно дерево строится, из-за неудачного хеша это возможно. Но это надо специально под этот хеш программу строить. Рандом и "подряд" работают примерно одинаково в тестах.

В питоне внутри всё реализовано через словари. Ты когда функцию вызываешь, в ней локальные переменные тоже в словарях. Всё в словарях. Поэтому работа с ними оптимизирована по-максимуму. И поэтому же пытаться тут что-то выиграть бесполезно. Объём занимаемой памяти можно выиграть, если специальные либы использовать.
Аноним 10/04/20 Птн 04:57:13 1654523380
Не могу найти в PEP8, надо ли юзать пробелы например при передаче аргументов в функцию?
compute(img, kp)
А если это цвета\точки?
set_color(0,255,0)
Аноним 10/04/20 Птн 05:37:29 1654530381
>>1654523
>Не могу найти в PEP8
Это порево двадцатитетней давности, времён 15 дюймовых мониторов редакторов, работающих в текстовом 80-колоночном режиме. Не обязательно дрочить на него.

>>1654523
>надо ли юзать пробелы например при передаче аргументов в функцию
После запятой - надо. PEP8 рекомендует НЕ ставить пробел тогда, когда присваивание в передаче параметров делается, вокруг знака равно. Но после запятой надо.
func(par1, par2=2, par3=3)

>А если это цвета\точки?
Всегда, и в tuple тоже.

Вообще здесь есть
https://www.python.org/dev/peps/pep-0008/#whitespace-in-expressions-and-statements

Просто посмотри описанные примеры. Без пробела после запятой очень неудобно читать, это вообще стандарт, и в программировании, и в оформлении текстов.
Аноним 10/04/20 Птн 09:38:14 1654574382
Помогите разобраться с iterator и iterable.
iterable - это то, что имеет метод __iter__(), который возвращает итератор, а итератор - это то, что имеет метод __next__(), так? Правильно ли я понимаю,что когда я пишу
l = [1, 2, 3]
for i in l:
...
на самом деле неявно вызывается l.__iter__(), из которого потом берутся next?
Аноним 10/04/20 Птн 10:04:40 1654589383
>>1654574
Да, всё именно так. Почти.

Сначала вызывается l.__iter()__
Он возвращает итератор, это этот итератор не обязательно тот самый l. Более того, скорее желательно, чтобы это был какой-то другой объект. Демо-примеры итераторов в этом плане не очень корректны (те, что возвращают self), они свалятся за примере
for i in L:
___for j in L:
______print(i, j)

но не всегда это актуально.
Аноним 10/04/20 Птн 10:09:52 1654592384
Аноним 10/04/20 Птн 10:53:59 1654619385
>>1654402
>>1654407
Вот спасибо, мужики. Пример с домом окончательно расставил все на свои места.
Аноним 10/04/20 Птн 11:21:38 1654641386
Ясно понятно модер данной борды пидорас удалил мой тред. Дублирую сюда: За год собираюсь вкатиться в классический питон+маш об. Заниматься буду 8-12 часов 6-7 дней в неделю. Знаю основы прогерства, по вышмату и статистике 5. Планирую после вката съёбывать в Силиконовую долину, но вкатывать буду без диплома. В чём подводные и почему нет?
Аноним 10/04/20 Птн 11:41:48 1654648387
Помогите, как вывести множество - print(*sorted(VSEYAZIKI,key=str), чтобы они шли не в одну строку. желательно без циклов
Аноним 10/04/20 Птн 11:44:19 1654649388
Аноним 10/04/20 Птн 11:45:45 1654652389
error.PNG (3Кб, 267x98)
267x98
>>1654649
Я так делал уже, но вот ошибка.
Аноним 10/04/20 Птн 11:47:10 1654653390
>>1654652
А теперь забей это в переводчик и не морочь людям голову
Аноним 10/04/20 Птн 11:53:01 1654658391
>>1654653
Забивал уже, но кидает на забугорные сайты, где все говорят исключительно про версию Питона...
Аноним 10/04/20 Птн 11:56:04 1654660392
>>1654658
Ну так залей код полностью для начала
Аноним 10/04/20 Птн 11:59:43 1654664393
>>1654660
Уже решил проблему, спасибо. key=str каким-то образом мешал, лол
Аноним 10/04/20 Птн 12:58:24 1654696394
>>1654396
ето сам экземпляр класса
Аноним 10/04/20 Птн 14:54:44 1654769395
>>1654641
> без диплома
В этом подводные.
Аноним 10/04/20 Птн 14:56:47 1654771396
>>1654641
Ну да, это не стоит отдельного треда, спросил бы в общем ньюфаг треде.
>по вышмату и статистике 5
Имхо, никаких подводных и проблем не предвидеться. Если ты в самом деле понимаешь статистику и теорвер на отлично, то ты уже лучше половины машинлёрншиков, а подтянуть прогерство для питоновых либ маш-оба вопрос одного-двух месяцев в зависимости от степени знакомства с основами прогерства.
Аноним 10/04/20 Птн 15:23:28 1654802397
>>1654641
>Планирую после вката съёбывать в Силиконовую долину
Там таких как ты пятачок за пучок, причём своих, которым визу делать не надо.
Аноним 10/04/20 Птн 15:31:31 1654812398
Прозрачность.png (114Кб, 337x399)
337x399
Парни, питон начал изучать недавно. В данный момент работаю с Pillow. Собственно столкнулся с проблемой: когда изменяю размер прозрачной гифки, а потом ее сохраняю, то у меня теряется ее прозрачность. Подозреваю, что проблема именно в save(), так как на всех этапах до сохранения каждый фрейм отображается прозрачным. Я думаю проблема в том, что параметр прозрачности в каждой картинки разный. Хелп!

Аноним 10/04/20 Птн 15:49:30 1654832399
>>1654769
Да ладно, везде пишут что берут за знания а не за бумажку. + мне похуй будет даже если шарагу закончу ибо живу в ссаной лугандонии бумажкой которых я могу только подтереться.
>>1654771
Ну тервер подучу мальца и думаю ок будет, в остальном себя оцениваю как сильного студента. Сейчас вот это смотрю https://youtu.be/2XFaK3bgT7w?t=3152 потом по списку книжек думаю уже идти.
>>1654802
Значит выдрочусь на уровень знаний получше тех, которые там.
Аноним 10/04/20 Птн 15:58:07 1654840400
Тут в ЖС-треде мощные баталии за/против ООП, по питону тоже небольшие срачи есть: https://2ch.hk/pr/res/1651996.html

И заодно вопрос: насколько адекватно в питоне реализованы ООП-фичи и функциональные фичи?
Аноним 10/04/20 Птн 16:09:10 1654842401
>>1654840
Более чем достаточно адекватно для полноценной работы.

> ООП-фичи
Сейчас набегут адепты смоллтолка.

> функциональные фичи
И хаскелля.
Аноним 10/04/20 Птн 16:29:40 1654850402
Аноним 10/04/20 Птн 16:35:32 1654851403
>>1654850
штоб умереть надо жить для начала, оба этих языка не жили
Аноним 10/04/20 Птн 16:45:34 1654856404
>>1654840
>насколько адекватно в питоне реализованы ООП-фичи
Простенько и хуёвенько.

>функциональные фичи
Учитывая, что все "функциональные фичи" — это три фичи (типизация, first class functions и паттерн матчинг), то примерно никак.
Аноним 10/04/20 Птн 17:46:25 1654943405
image.png (161Кб, 1278x1033)
1278x1033
image.png (143Кб, 1278x1033)
1278x1033
image.png (139Кб, 1278x1033)
1278x1033
image.png (148Кб, 1278x1033)
1278x1033
Хочу прикрутить форму загрузки файлов на сервер. Все сделал по докам и ошибка 404 при нажатии кнопки "загрузить". Что не так?
Аноним 10/04/20 Птн 17:52:04 1654950406
>>1654856
Языки с чистой парадигмой никому не нужны. Путь то ООП, ФП или что-нибудь ещё. Нужны языки, которые не сковывают и позволяют разные подходы применять, причём одновременно

В Питоне есть и основы ООП, и какой-то минимум ФП, и метапрограммирование, и параллельное, и асинхронное поддержали вполне достойно. В этом его сила. Свои слабости тоже есть, не без них.
Аноним 10/04/20 Птн 18:00:57 1654958407
Аноны, помогите, горю уже. Мне нужны байты файла, который я отправляю на апи через FileField, пытаюсь читать его в представлении из реквеста: request.FILES['file].read() и мне отдают b'', хотя size у него есть и он readable. Что я могу делать не так?
Аноним 10/04/20 Птн 18:16:43 1654961408
>>1654950
>Языки с чистой парадигмой никому не нужны. Путь то ООП, ФП или что-нибудь ещё. Нужны языки, которые не сковывают и позволяют разные подходы применять, причём одновременно
Да не, похуй вообще на подходы, нужны языки которые требуют минимальной подготовки и позволяют пилить фичи как угарелому.

> В Питоне есть и основы ООП
Есть.
>и какой-то минимум ФП
Нету. Блять, в питоне даже лямбд нормальных нет, ты о чём вообще?
>и метапрограммирование
В питоне это тоже хуй пойми что, а не МП.
>и асинхронное
Ну хоть один поток полностью утилизировать сумели, ахуеть.

В питоне, как в языке, толком-то нихуя и нет. Он простой как палка, и содержит 0 каких либо концепций, просто тупой как палка язык. За что и ценится.
Аноним 10/04/20 Птн 18:16:58 1654962409
>>1654950
> Языки с чистой парадигмой никому не нужны.
Всё-таки отчасти нужны, их используют как DSL, но для чего-то большего они не особо годятся.

> Нужны языки, которые не сковывают и позволяют разные подходы применять, причём одновременно
Главное при добавлении фич в язык не увлечься, а то получится C++. Тоже не сковывает, да и вообще язык универсальный, но сложноват в использовании.
Аноним 10/04/20 Птн 18:23:44 1654966410
>>1654962
>Всё-таки отчасти нужны
Где например? Для всяких декларативных UI-ев обычно на том же языке DSL и клепают. Больше той же чистой функциональщины нигде не видал.

>Главное при добавлении фич в язык не увлечься, а то получится C++. Тоже не сковывает, да и вообще язык универсальный, но сложноват в использовании.
Язык либо живёт и развивается, либо тухнет. Обрастание фичами — это вопрос времени, для того и нужны новые языки (или хотя бы версии, дропающие обратную совместимость), чтобы собирать все удачные идеи из старых и дропать лишнее. Правда бизнесу этого не объяснить, и легаси на каком нибудь втором питоне в каком нибудь фб так и будет жить как всякого банковское/военное говно на коболе/фортране, лол.
Аноним 10/04/20 Птн 18:26:02 1654970411
>>1654961
Есть там всё, если не заниматься демагогией, но никто за простым синтаксисом не разглядит, ведь всем надо скобочки, сотню ёбнутых конструкций, синтаксиса в духе перла и прочих фишечек.
Аноним 10/04/20 Птн 18:36:06 1654980412
>>1654962
C++ обрастал фичами во много слоёв, причём эти фичи костылями прикручивать приходилось, чтобы не ломать совместимость со старым языком. В результате какой-то адъ на выходе.

И такое ощущение, что там идеологи об элегантности особо и не думали. Всё-таки система ценностей идеологов питона немного другая, это чувствуется.

Хотя последнее время много какого-то говна принесли. f-strings на первый взгляд прикольно, но реально это шаг в сторону говнокода, такой php древних времён. Декларации какие-то дикие.
Аноним 10/04/20 Птн 18:41:58 1654985413
>>1654970
Там нет нихуя по факту, мань. Я же говорю: он потому и ценится. Можно давать писать код людям, которые в программирование пришли вчера.
>но никто за простым синтаксисом не разглядит
А что разглядывать-то, мань? Это вполне конкретные вещи, которые в питоне нет. А как говорят гоферы — и не нужно.
Аноним 10/04/20 Птн 18:45:11 1654988414
>>1654966
>и легаси на каком нибудь втором питоне в каком нибудь
Сейчас чуть проще, благодаря моде на микросервисы.

Обратную совместимость надо дропать иногда, но и перекатывать на новые версии тоже надо адекватно. Гвидо тот ещё урод в этом смысле, выкатили третью версию, которую при всём желании нельзя было совместить со второй, поэтому много лет ключевые проекты на третий питон не переходили и вообще популярность просела языка.

Вот банальные юникод-строки. Был префикс u"строка" во втором питоне, обязательный. Чего стоило оставить этот префикс в третьем, но объявить его obsolete, с обещанием убрать через несколько лет? Тогда можно было бы писать совместимый код и постепенно перекатываться.

Одна эта мелочь ставила крест.
Аноним 10/04/20 Птн 18:45:26 1654989415
>>1654980
Элегантность по отношению к питону, имхо, неверный термин. Всё же, он про эстетику. А если говорить про эстетичный (или красивый) код, то тут уже по возрастающей идут всякие руби...скалы...хаскелли.

В питоне думают о простоте. В каком нибудь го о ней думают ещё больше.
Аноним 10/04/20 Птн 18:51:55 1654992416
85748.jpg (26Кб, 700x700)
700x700
>>1654989
> В питоне думают о простАте

Так будет больше соответствовать действительности.
Аноним 10/04/20 Птн 18:54:14 1654993417
>>1654485
>Если я правильно тебя понял - ты запускаешь файлы через cmd типа
Да, все так. Я думаю вот о чем - черепаха пошагала и остановилась, потом я ее не выходя из графического интерфейса (получается файл все еще исполняется, cmd не выдала приглашения) могу ли перемещать дополнительно?
В общем, шизоидно получилось, суть - могу ли я дополнять уже выполненный код и получать сиюмитный результат?
Вот прошла она у меня 50 пикселей и все, строки в файле .py кончились а я тут такой опа и дописал пиздуй еще 20 пикселей и она попиздовала?
Аноним 10/04/20 Птн 18:54:53 1654995418
>>1654988
Сразу видно нюфага, лол.
Нет ничего более постоянного, чем временное. Сегодня ты вставляешь костыль, завтра переходишь на другие таски, через пару месяцев ещё кто-то доложит туда свой костыль и пойдёт по другим таскам, а через пару лет в такой код никто даже залезать не захочет. И уж тем более в FAANG-ах, где кол-во программистов просто космическое и кодобазы на сотни гб.

Это как с недавним дропом поддержки x32 битного софта на макоси. Внезапно оказалось, что куча даже нового софта написана криво и не умеет в x64 (с банальными ошибками, вроде кривого типа для индексации массива), просто из-за того что была такая возможность и все хуй ложили пока не пришёл эпл и не выебал всех в сраку.
Аноним 10/04/20 Птн 18:57:09 1654998419
>>1654989
> хаскелли
> эстетичный
Уродливый язык, как ни посмотри. С одной только обработкой ошибок здесь всё в разы хуже, чем в Go. Функции, принимающие тип из 100500 полей. Лапша из рекурсий и лямбд, потому что нет циклов и переменных. Стиль именования идентификаторов из одной буквы. Нужно быть в конец матанутым, чтобы увидеть в этом красоту.
Аноним 10/04/20 Птн 19:02:27 1655000420
>>1654998
Зато решить задачу неэлегантно, засрав всё вокруг стейтом нельзя, вот он и эстетичный, лол. Всё есть функция, без лишних сущностей, есть жи брат
Аноним 10/04/20 Птн 19:52:15 1655018421
>>1654961
>Нету. Блять, в питоне даже лямбд нормальных нет, ты о чём вообще?
Странно что ты еще Хаскель не притащил как образец на который маст хэв равняться иначе "не_ФП_яскозал"

>В питоне это тоже хуй пойми что, а не МП
С метаклассами и дескрипторами пытался хоть раз разбираться? Я - да, достаточно мощная вещь но забил хуй на полпути т.к. это надо только красноглазым, пишущим фреймворки

>Ну хоть один поток полностью утилизировать сумели, ахуеть
Асинхронная работа в Питоне работает как надо, проблема лишь что приходится часто полагаться на сторонние либы ведь стандартная asyncio это просто каркас для других пакетов и не более. Многопоточность же не могут завезти в первую очередь из-за ограничений CPython которые хуй так просто наебнешь. Где хардкорная многопоточность все же нужна GIL внезапно таки освобождается и она работает, но это все под капотом ебошит и программер туда не залезет дабы ничего не наебнуть. numba тому пример
Аноним 10/04/20 Птн 20:20:22 1655030422
>>1655018
>Асинхронная работа в Питоне работает как надо
Недоделана. Например asyncio.wait_for()
В теории должна прерывать выполнение по таймауту, однако реально этого не делает, если исполнение зависает на синхронной задаче, прерывания не происходит. Почему? Я ожидаю другого поведения. Это должно быть заложено в язык, но этого нет.

При этом реализовать самому реально, используя библиотеку signal, системнозависимую правда. Но это неудобно.

Ещё проблема с чтением stdout/stderr в запускаемых отдельных процессах. Нельзя читать данные, пока вызванный процесс не завершит исполнение. Это ни разу не асинхронное поведение, и хрен переборешь.
Аноним 10/04/20 Птн 20:23:58 1655036423
image.png (12Кб, 714x71)
714x71
Пчелы, есть вот такой код парсера (он работает, с ним все хорошо), написанный с использованием aiohttp
https://pastebin.com/BELtEqvX
И есть модуль main, так же асинхронный, который вызывает в себе этот парсер
https://pastebin.com/t6w3PHJy
Луп мейна крутится с условием run_until_disconnected()
А луп парсера run_until_complete(). Иными словами, мне просто иногда из постоянно работающего мейна нужно вызывать метод из парсера, однако интерпретатор запрещает это делать с ошибкой пикрил
Почему так получается? Как мне разделить эти тупые лупы?
Аноним 10/04/20 Птн 21:28:16 1655081424
изображение.png (8Кб, 239x85)
239x85
Сап, прогроммач. Есть пикрелейтед окошко. Поля ввода пароля защищено заглушкой вида show='*'. Есть кнопочка show, на нее привязана функция, которая меняет параметр show поля ввода пароля на None. Тем не менее, пароль остается все в том же виде. Есть идеи, как это реализовать?
Аноним 10/04/20 Птн 21:30:02 1655084425
>>1655081
А, я уже сам разобрался. Надо менять не на None, а на ''
Аноним 10/04/20 Птн 21:49:41 1655088426
>>1655036
Он кекается на bot.run_until_disconnected() или self.loop.run_until_complete(self._parse_content()) ?
Аноним 10/04/20 Птн 22:08:40 1655099427
image.png (28Кб, 756x156)
756x156
>>1655088
На втором.
Если я правильно понимаю терминологию, то мейн поток спокойно крутится, пока не дисконнект
А вот поток из парсера уже запустится не может
Полез в доки asyncio, похоже нужно вручную создавать новый таск
Аноним 10/04/20 Птн 22:24:37 1655103428
Аноним 10/04/20 Птн 23:17:09 1655132429
Есть знакомый, средней руки кодер, написали ему с одной веб-студии, покодить на Джанге за 7 доллларов в час, ну он связался, подписал договор, дали доступ ко всему, он потыкал-потыкал, тоже с Докером проблемы возникли, там-сям поковырялся, толком не разобрался. Ну его через пару дней и отшили, сам оправдывается, мол и учеба, и опыта с подобным не было.
Странный чел.
Аноним 10/04/20 Птн 23:18:06 1655133430
Аноним 10/04/20 Птн 23:22:24 1655136431
>>1655132
даун я бы на его месте, со всем этим кризисом, жопу рвал бы как мог
Аноним 10/04/20 Птн 23:31:36 1655143432
Аноним 10/04/20 Птн 23:34:21 1655146433
1586550139602.jpg (109Кб, 1300x961)
1300x961
Что на рынке труда с питоном? Меньше работ стало или больше? Один челик сказал, что перекатился с крестов на питон в другом треде и я заинтересовался тоже.
Аноним 10/04/20 Птн 23:44:15 1655161434
>>1654993
Через просто исполнение файла - вряд ли, а если просто код в интерпретатор ебанешь - скорее всего сможешь, поэтому и >>> у тебя в учебнике
Аноним 10/04/20 Птн 23:50:10 1655171435
>>1655161
Понял, спасибо.
Меня вот интересовало как раз пользуются ли люди в реальных коммерческих проектах возможностями интерпретатора?
Или все ограничивается исполнением заранее прописанных .py файлов?
Дело в том, что я еще пока не до конца понимаю саму парадигму кодинга на питоне(да и кодинга в целом). И когда ты начинаешь изучать подобные вопросы не поднимаются в литературе, а мне в голову засел такой, я считаю, фундаментальный по крайней мере на моем этапе развития в этой теме вопрос.
Аноним 11/04/20 Суб 00:11:48 1655189436
>>1655171
Это одно и то же. Просто в одном случае интерпретатор читает ввод от тебя, а в другом из файла. Суть от этого не меняется.
Аноним 11/04/20 Суб 00:13:53 1655193437
Мммм, зачем нужны массивы, если есть списки? Погуглил немного и особой разницы между ними не обнаружил. Разве что ограничения на тип данных и размер для массива.
Аноним 11/04/20 Суб 00:16:17 1655194438
>>1655193
Массив - static array С-господа пояснят
"Список" - dinamic array
List - linked list, нахуй ненужон кроме пары частных случаев
Аноним 11/04/20 Суб 00:16:39 1655195439
>>1655193
Они быстрее и оптимальнее по памяти, потому что нет этой универсальности.
Аноним 11/04/20 Суб 00:21:16 1655202440
Для чего нужны массивы, когда есть кортежи?
Аноним 11/04/20 Суб 00:52:43 1655217441
>>1655193
Массивы ищутся в памяти быстрее всего, так как элементы идут друг за другом, можно сказать

Каждый элемент списка разбросан по памяти и поэтому этот элемент должен содержать в себе данные любого типа И указатель на следующий элемент.

Поэтому также можно сказать, что массив это не набор указателей.
11/04/20 Суб 01:22:06 1655228442
>>1655202
Не нужны, нужна повсеместная иммутабельность и бесконечный ряд факториалов на хаскелле.
Аноним 11/04/20 Суб 04:35:43 1655317443
>>1655099
Тебе не нужно внутри объектов пользоваться функциями вроде run_until_complete.

Цикл обработки сообщений, Event loop который, в программе всегда один. Ты его стартовал и всё, дальше ты кидаешь в этот цикл свои задачи.
вот такого у тебя не должно быть:
def get_posts(self):
____return self.loop.run_until_complete(self._parse_content())

Код будет иметь другой вид, скорее
async def get_posts(self):
____return await self._parse_content()


Аноним 11/04/20 Суб 06:39:33 1655337444
>>1655317
>Код будет иметь другой вид, скорее
async def get_posts(self):
____return await self._parse_content()
О господи, мне аж поплохело от того, насколько это очевидное решение.
Вероятно я запутался из-за того, что много тестировал отдельно этот класс вне основного Event loop
В общем, теперь все работает, большое спасибо!
Аноним 11/04/20 Суб 07:11:50 1655345445
Сап. Есть фукнция а(x), в функции а есть функия b(c)
Как вызвать функцию а, чтоб передать ей с (для функции b) ?
Аноним 11/04/20 Суб 07:36:52 1655348446
>>1655345
def a(x, c):
____b(c)

Сформулируй вопрос нормально. Может быть ты даже сам придумаешь и ответ после этого.
Аноним 11/04/20 Суб 08:50:31 1655357447
>>1655348
Уже понял. Нужно вызывать a(x)(c).
Аноним 11/04/20 Суб 10:07:13 1655369448
>>1655217
Спасибо за всё писькинс
мимоньюфанг
Аноним 11/04/20 Суб 12:47:40 1655521449
postsentries.png (13Кб, 833x495)
833x495
В Джанге у меня есть обычные модели типа Post и модели Entry, которые связаны с постами через ForeignKey (пикрил)
Надо намутить разграничение доступа между пользователями, чтобы только создавший эти instance мог их редактировать и смотреть. Мне надо поставить поле owner = ForeignKey(User) внутрь обоих: Post и Entry или достаточно будет поместить его только внутрь Post? Как обычно делается? Я канешн понимаю что Entry по-любому связан только с одним конкретным Post, но проблем с безопасностью так не возникнет?
Аноним 11/04/20 Суб 14:02:15 1655647450
Аноны, как проверить что список не пустой?
Аноним 11/04/20 Суб 14:05:54 1655651451
>>1655647
> Аноны, как проверить что список не пустой?
Ну я и долбоеб. Уже нашел - пустой список - это False в питоне
A = list()
If not A:
Print(pust)
Аноним 11/04/20 Суб 14:35:38 1655667452
Нужно проверить некоторое количество ссылок на присутствие кейвордов на странице.
Понятно, что можно удалить теги и искать подстроки, но хочется что-то более сириус бизнесовое.
Аноним 11/04/20 Суб 14:52:41 1655681453
>>1655521
А смысл дублировать поле в 2х моделях, если они связаны и так и ты можешь получить доступ в оба направления и посмотреть это поле?
Аноним 11/04/20 Суб 15:59:52 1655746454
>>1655681
Нет какого-то эксплойта, через который можно посмотреть чужие Entry?
Аноним 11/04/20 Суб 16:41:40 1655788455
Анон, привет, есть цель написать очень простое приложение на android, можешь описать буквально пару шагов которые нужно пройти чтобы написать его на чистом python?
Аноним 11/04/20 Суб 16:59:45 1655814456
>>1655746
У тебя же не простые селекты, куда ты можешь что угодно поставить, так что какого-то омега-очевидного способа скорее всего нет. Хотя если авторизация через токен и кто-то спиздит чужой токен, то можно, но это уже проблема пользователя
Аноним 11/04/20 Суб 17:24:03 1655827457
изображение.png (1Кб, 166x182)
166x182
>>1654520>>1654508
>Даже с интами, питон все равно хеш считает?
>Да, конечно.
Аноним 11/04/20 Суб 18:32:21 1655905458
Привет. В питоне есть какой нибудь таймер, фитиль? Сейчас попробую объяснить

Вот у меня есть

While True:
----if событие происходит:
--------time. sleep(10)
-------- сделать так-то

Есть ли какой-то способ заменить sleep таким образом, чтобы действие исполнилось через 10 секунд, но чтобы в эти 10 секунд код не простаивал в ожидании, а все так же отслеживал события, запуская в очередь новые таймеры, если события произойдут
?
Аноним 11/04/20 Суб 18:34:42 1655907459
В жс можно написать for-цикл вроде этого:
for (a = 1, b = 3, c = a * b; a < 10; a++) {
...
}
Как что-то подобное реализовать с питонухе?
Аноним 11/04/20 Суб 18:41:46 1655914460
>>1655827
С словарях хитрее алгоритм. Хеш-поиск работает так, что у тебя есть линейный массив с прямой адресацией по хешу
address = array[hash]
Ты просто не можешь сделать такой массив из 2^64 элементов, памяти не хватит в принципе. Массив маленький, динамически расширяемый по мере разрастания словаря. И вот магия с тем, как вычислить этот маленький хеш, она есть. И как коллизии обрабатывать, там ещё больше магии.

Аноним 11/04/20 Суб 18:41:55 1655916461
Стикер (191Кб, 284x284)
284x284
>>1655827
Просто хеш инта равен этому инту
Аноним 11/04/20 Суб 18:44:07 1655919462
>>1655907
Никак. Этот тип цикла не поддерживается.
Аноним 11/04/20 Суб 18:45:48 1655921463
>>1655905
Тебе надо открыть для себя асинхронное программирование. Да, в питоне это есть.

Аноним 11/04/20 Суб 18:49:19 1655925464
>>1655907
b = 3
c = b * 1
for a in range(1, 11):
____...
Не очень понял, зачем тебе действие, которое выполняется один раз, нужно запихивать в скобки, но ладно.
Аноним 11/04/20 Суб 18:51:21 1655928465
>>1655905
> запуская в очередь новые таймеры, если события произойдут
Скорее всего тебе понадобиться многопоточность.
Либо ты можешь убрать свой sleep и во время отслеживания своих действий (точнее, между ними) и запуска новых таймеров время от времени запускать проверку не прошло ли 10 секунд и не произошло ли какое-то событие - но это утопия и подходит только для не очень сложных случаев.

>>1655907
В питоне только foreach цикл, такого for нету.
Можешь записать свою фиготу через while, впрочем твой конкретный случай можно и через for записать - у тебя вроде бы только a изменяется.

>>1655914
Я в курсе же про всё это, и про коллизии тоже. Нет там никакой магии. Скорее хеш-функция выдаёт стандартный 64 битный результат, а словарь использует младшие n битов, удваивая и перестраивая массив при проценте заполнения больше определённого.
Аноним 11/04/20 Суб 19:36:06 1655952466
Как "перезагрузить" БД при работе с Джанго? Я тестирую приложение у себя на машине, поэтому часто приходится очищать БД (Postgres) и заполнять ее новыми данными. Раньше просто удалял модели и файлы миграций, теперь эта срань сыплет мне какими-то ошибками (django.db.utils.ProgrammingError: ОШИБКА: столбец "name" в таблице "django_content_type" не существует)

Что делать? Стирать к херам вообще все что есть?
Аноним 11/04/20 Суб 20:32:19 1656003467
15097077271480.jpg (60Кб, 599x900)
599x900
Аноны, посоветуйте плиз курсы для ньюфага
1) онлайн
2) без жесткого тайминга (сдай задание завтра или умрешь)
3) с сертификатом
4) можно на ингрише
Очевидная Coursera очевидна?
Аноним 11/04/20 Суб 20:58:09 1656028468
>>1655788
Никак ты этого на питоне не сделаешь, разве что консольный скрипт в каком-нибудь QPython запустишь.
Андроид - это жаба и котлин. Даже попытки написать что-то на родном NDK на C++ приводят к тому, что шаг влево шаг вправо - и приходится возвращаться к жабе.
Теоретически, возможен вариант с Jython, но вряд ли где-то есть нормальный пошаговый туториал, всё обрывками.
Аноним 11/04/20 Суб 23:02:06 1656102469
>>1655788
kivy
но пожалуйста, освой Kotlin, он не такой ебанутый как Жаба и даже сходства с Питоном там есть, не иди по тропе пизданутых жс-еров которые суют свой язык просто всюду (в том числе и на мобилки), уже засрали все что смогли
Аноним 11/04/20 Суб 23:08:14 1656104470
Так, блэт. Внутри одного из class-based CreateView в Джанге у меня крашился редирект, решил провести ахуительный дебагинг с помощью print и посмотреть какой url возвращается его методом get_success_url:
print('URL:', self.get_success_url())
По итогу увидел что собственно этот метод и крашится: AttributeError: 'NoneType' object has no attribute '__dict__' С хрена ли метод не возвращает мне тот success_url, который был определен в классе?
Аноним 11/04/20 Суб 23:08:26 1656105471
15863230129220.png (938Кб, 635x637)
635x637
Пистоны, вопрос по pyqt5.
Мне надо иметь возможность, сортировать результаты по нескольким значениям.
Т.е. например, есть список категорий, пользователь может несколько раз из этого списка выбирать разные значения и они "суммируются", как например тэги или фильтры на некоторых сайтах.
Какой виджет для этого лучше всего подходит?
Аноним 11/04/20 Суб 23:09:50 1656106472
>>1656104
Дополнение: крашится он начал после того как я переопределил метод form_valid и стал сразу возвращать в конце return HttpResponseRedirect(self.get_success_url())
Думал, что все должно нормально работать, но что-то идет не так
Аноним 12/04/20 Вск 08:53:55 1656228473
>>1655952
https://docs.djangoproject.com/en/3.0/ref/django-admin/#flush это что ли?
Для прогона тестов джанга создает отдельную бд и потом удаляет её, и если я правильно понял, что сомнительно, то вот здесь https://github.com/django/django/blob/master/django/test/utils.py есть функции setup_databases и teardown_databases, который смогут тебе помочь, если тебя надо снести базу и на ее руинах создать новую. А может лучше тесты написать и не страдать.
>>1656104
>AttributeError: 'NoneType' object has no attribute
Либо не передал чего надо в метод, либо не вернул чего надо из метода. Если покажешь код, то будет проще тебя помочь.
Аноним 12/04/20 Вск 12:05:22 1656343474
конструктор ботов для телеграмма

Всем привет. Нужно без знаний кода собрать бота для телеграмма. Его функционал как у тиндера, только на минималках:
1. Зарегался, указал описание, фото, город
2. Жмешь поиск и тебе профили таких же зарегавшихся показывается

Я смогу такое сделать на конструкторе? Или там только «если а то б»?
Аноним 12/04/20 Вск 12:27:12 1656361475
>>1648937
Думаю об используемых сущностях всегда и везде, смотришь на дорогу, думаю о классах Транспорт, наследуемых от него классах Машина и т.д., и т.п. ООП про мышление, а не про дрочку. Старайся думать о логике приложений на смартфоне, какие классы реализовывали разработчики, по твоему мнению. Что-то в этом духе.
Аноним 12/04/20 Вск 13:09:03 1656379476
Бля челы как заставить себя развиваться дальше (зачем и куда)
освоил удава (+ попутно жс (ес6 без фреймворков), жабу (в шараге) и всякие инструменты автоматизации типа баша, докера итд) на уровне "медиум++ задачек с литкода без гугла"
Но стажировок щяс ни у кого нет; через шарагу можно только в вротенд вкатится, а я хочу в бекенд

Если своровать у кого-нибудь классный гитхаб и отрефакторить его под себя, это покатит на собесах?
Аноним 12/04/20 Вск 13:37:32 1656395477
>>1656102
>освой Kotlin
Блять опять эти скобочки дрочить блядские, начал изучать python потому что нет этой бесящей хуйни, но все равно, спасибо, буду параллельно изучать еще kotlin
Аноним 12/04/20 Вск 13:40:02 1656397478
Аноним 12/04/20 Вск 13:40:33 1656398479
Аноним 12/04/20 Вск 14:24:04 1656430480
>>1655788
Гугли реакт нейтив, нейтив скрипт и прочух хуйню, вкатыш.
Аноним 12/04/20 Вск 14:24:36 1656431481
>>1656430
JS - для пидоров-смуззихлёбов.
12/04/20 Вск 14:55:02 1656447482
>>1656343
Так вот почему здесь так любят делать ботов - потому что это гуманитарное занятие где-то на уровне вордпресса и макросов для экселя. Им дали простейший в использовании язык - нет, не хочу, хочу программирование мышкой.
Аноним 12/04/20 Вск 14:57:51 1656448483
>>1656430
Вопрос вроде был "как писать для андроида на питоне", а не "как писать для андроида не на жабе".
Аноним 12/04/20 Вск 15:22:05 1656466484
>>1656343
Конструкторы нужны для очень простых проектов уровня сайтов визиток. Сам понимаешь, какая там логика.
Даже если и сможешь, это будет такое извращение, что проще самому выучить какие-то базовые штуки и накидать проект за пару часов.
Тебе всего-то понадобится обертка для работы с апи телеграмма (советую telethon или, если туповат - телебот; у них у обеих шикарные доки с кучей примеров) и какая-то бдшка. Можно воспользоваться встроенной sqlite, если бот небольшой - для знакомств с одноклассницами, например.
И в принципе все, это очень просто.
Аноним 12/04/20 Вск 16:14:05 1656495485
>>1656379
>жабу (в шараге)
Удачи придти на вотчину к жаба-бояринам, там ты будешь обоссан и скормлен очередной AbstractProviderActorFactory
Аноним 12/04/20 Вск 16:19:01 1656498486
>>1656398
>https://en.wikipedia.org/wiki/Kivy_(framework)
А кто-нибудь на нём писал что-то практичное, что именно на смартфонах работает?

Жить с ним можно, нормально там по скорости, подводные камни и слабые места есть?

С сетью нормально дружит? С asyncio можно подружить, или надо треды для сети делать, или как там вообще с этими вопросами принято?
Аноним 12/04/20 Вск 16:22:40 1656500487
>>1656466
Так ладно. Я в качестве хобби когда-то только версткой и чуть js занимался. Я смогу эту хуйню на джаваскрипте сделать? Я не буду ради этой задачи питон изучать, лучше денег накоплю и фрилансеру задачу поставлю.
12/04/20 Вск 16:44:06 1656512488
Аноним 12/04/20 Вск 17:04:51 1656529489
>>1656498
>кто-нибудь на нём писал

нет
Аноним 12/04/20 Вск 17:15:27 1656535490
image.png (135Кб, 680x715)
680x715
Дорогой анон, на что эта хуйня ругается?
Аноним 12/04/20 Вск 17:17:20 1656537491
>>1656535
Отступы неправильные.
12/04/20 Вск 17:17:51 1656538492
Аноним 12/04/20 Вск 17:18:36 1656540493
Аноним 12/04/20 Вск 17:19:33 1656542494
Аноним 12/04/20 Вск 17:28:32 1656552495
>>1656535
А еще у тебя n не определена.
Аноним 12/04/20 Вск 17:39:19 1656560496
Аноним 12/04/20 Вск 17:40:09 1656562497
Аноним 12/04/20 Вск 18:03:44 1656581498
>>1656562
Сомнительная штука на самом то деле.
KivyMD забросили поддержку, в результате из ЛДНР какой-то петух взялся за это дело. Ему безусловно спасибо, но как бы на общий уровень намекает.

Но идею внести это в шапку полностью поддерживию, тем более скоро перекот.
Аноним 12/04/20 Вск 18:39:57 1656599499
>>1656581
>Ему безусловно спасибо, но как бы на общий уровень намекает.
Ты всегда можешь ему помочь.
Или найти того, кто сможет помочь.
Аноним 12/04/20 Вск 18:45:54 1656603500
>>1656599
> Ты всегда можешь ему помочь.
Угу, но мне совершенно не зашел подход киви в виде их файликов со стилями.
Хотя на QT5 хуярю только так, странно.
Аноним 12/04/20 Вск 18:48:12 1656605501
>>1656603
> на QT5 хуярю
Ну-ка подсоби с этим >>1656105 , пожалуйста.
Аноним 12/04/20 Вск 20:04:14 1656645502
Аноним 12/04/20 Вск 21:48:58 1656683503
>>1656105
>>1656605
Какой хитрец.

Ну вообще, то что ты описал, больше похоже на действие при нажатии кнопки.
1 кнопка - 1 тег. Кнопка ведь может быть задизайнена и так что не догадаешь что это кнопка, да?
Жмякает юзер на тег-кнопку, а ты в память себе записуешь что за текст на кнопке был(напомню, ето тег).
Аноним 12/04/20 Вск 21:51:11 1656684504
>>1656683
Я полагал что-то вроде либо кучи чекбоксов, либо выпадающего списка с возможностью отмечать пункты этого списка. Второе возможно?
Аноним 12/04/20 Вск 21:53:09 1656686505
>>1656684
Ну я не спец по ЮИ/ЮХ и не скажу тебе как лучше, по возможно все из того что ты описал, да.
Я на сайтах везде вижу кнопки и по этой причине их тебе и описал. Да и работать с ними проще, если честно, работа со списком мне не сильно зашла, но это я.
Аноним 12/04/20 Вск 21:53:27 1656687506
>>1656686
>по возможно
но возможно *
Аноним 12/04/20 Вск 22:10:29 1656691507
https://pastebin.com/p6wmdtPC

Для своего хеллоуворлда нужно было реализовать вот такой класс, но чувствую, что в конструкторе у меня какие-то дикие костыли. Есть варианты получше? Наверняка же это какой-то популярный паттерн, но я не знаю, как он называется.
Аноним 12/04/20 Вск 22:25:36 1656694508
Аноним 12/04/20 Вск 22:48:04 1656700509
>>1656694
Разве это singleton? У singleton'а может быть всего один инстанс на весь файл, а здесь ограничено количество инстансов с одинаковым значением атрибута. Или я не прав?
Аноним 13/04/20 Пнд 00:01:58 1656725510
Синглтон придумали ООПшнутые, для всех задач достаточно статик полей и методов.
Аноним 13/04/20 Пнд 01:08:41 1656752511
Мб это не по теме, но подскажите, как можно пофиксить следующее:
Крутится у меня в консольном окне скрипт, который слушает вконтактик по АПИ. Когда окно долго не находится в фокусе или параллельно запускается какой-нибудь другой процесс, то скрипт как-будто останавливается - логи не пишутся и респонсы на ивенты не отправляются, пока консолька вручную не пробудится каким-либо действием.
Как можно заставить окно со скриптом работать без перебоев?
Аноним 13/04/20 Пнд 02:07:56 1656780512
>>1656752
Возможно стоит запускать скрипт не ручками и поддерживать его работу открытым окном, а чем-то типа 'superviord',
Аноним 13/04/20 Пнд 02:26:49 1656784513
изображение.png (10Кб, 288x404)
288x404
Я вроде бы знаю про линеаризацию, но это вообще нормально, что поведение классов А/B изменяется (конструктор не вызывается) из-за изменения порядка родителей? Получается, super просто следующий элемент линеаризации выдаёт, потому что если одному классу нужны вызвать конструкторы классов 1 и 3, а классу 1 нужно вызвать конструктор класса 2 - то с каким угодно другим устройством super это будет невозможно сделать без ещё более тяжёлых костылей.

Это как-то весьма неудобно получается, мягко говоря. Что делать если у меня __init__ с параметрами, которые я явно передаю и я хочу засунуть этот класс в множественное наследование? Там же (возможно) будет другой "родитель", и super вызовет конструктор какого-то левого класса с моими параметрами. А целевой класс наоборот останется без этих параметров.

Хреновая какая-то концепция множественного наследования. Хуже неё только концепция исключений.
Аноним 13/04/20 Пнд 09:06:31 1656851514
>>1656700
>Разве это singleton? У singleton'а может быть всего один инстанс на весь файл, а здесь ограничено количество инстансов с одинаковым значением атрибута. Или я не прав?
У тебя именно самый настоящий синглтон. Паттерн это идея проектирования. Идея синглтона в том, чтобы создавать только один объект определённого типа, по мере необходимости, и чтобы для пользователя работа выглядела так, как с обычным объектом.

А если более общно, то синглтоны это просто "глобальные переменные". Со всеми их плюсами и минусами.
Аноним 13/04/20 Пнд 09:15:52 1656852515
>>1656784
>Хреновая какая-то концепция множественного наследования. Хуже неё только концепция исключений.
Исключения в питоне очень хорошие, стройные и понятные, лучше, чем во многих других языках. Не понимаю, с чем там проблема.

Наследование в питоне полное г-но, всё сделано криво и убого. Особенно множественное. То есть ни множественного наследования нормального нет, ни интерфейсов вместо него, всё через жопу.

Я не понял точно, что хочешь ты, но может тебе надо просто явно вызывать конструктор нужного класса вместо super. Для множественного наследования это самый адекватный вариант.
Аноним 13/04/20 Пнд 09:27:43 1656858516
>>1656784
А вообще у тебя самого кривая архитектура. Множественное наследование не для этого. В наследовании ты переопределяешь класс на основе родителя.

Если у тебя поведение родительских классов не согласовано друг с другом, у тебя могут быть проблемы. Ну банально в одном конструкторе ты делаешь переменную self.storage = {}, в другом self.storage = [] (для хранилища используются разные типы, но с одним именем. У тебя всё рухнет после этого. Аналогично с методами, может быть конфликт из-за этого.

Поэтому во многих языках множественного наследования нет, вместо используются интерфейсы, mixin и прочее. Но вот в питоне по этой части всё очень невнятно и неудобно.
Аноним 13/04/20 Пнд 10:23:17 1656866517
Аноним 19/04/20 Вск 17:39:08 1662127518
Посоветуйте материал для вката в питон для тех, кто знает другие языки. Работаю на жабе и котлине, вскоре может понадобиться питончик.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов