image.png44 Кб, 587x598
Питон-тред №173 /python/ 3375375 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #173

Предыдущий: >>3327670 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq

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

#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
https://github.com/yakimka/python_interview_questions - интересная подборка, масса разнообразных тем и вопросов, для продолжающих, всё на русском

— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.

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

— А как учить джангу? Нахожу книги по джанге 1.х, можно их использовать?
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.

— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.

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

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

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

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

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

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущая шапка: https://goonlinetools.com/snapshot/code/#z0o243n8t8byiy2zptv27
2 3375388
Напоминаю вкатунам, что работы на питоне НЕТ. Питон это просто мелкий скриптовый язык, на котором пишется мелкая автоматизация. Ну и в дата саенсе используется, но как дополнительный инструмент, без глубокого знания матана и математической вышки вы никому не нужны.
То что вам впаривают на курсах - это пиздеж.
image59 Кб, 470x699
sage 3 3375396
>>75388

>работы на питоне НЕТ. Питон это просто мелкий скриптовый язык, на котором пишется мелкая автоматизация


Подтверждаю.
Инфоцыгане с курсов создали 3к фейковых вакансий.
4 3375454
>>75396
Ну на бэкенде удалёнке всего 250-300. А остальное там разрознено всё: AQA, DevOps/Sysadmin, Data Science/Data Engineer/DWH.
5 3375649
>>75396
Ну давай разберем по частям тобою написанное.

1) Убираем нерелевантные слова - data, machine, machine, devops, преподаватель, куратор - чтобы отсеять девопсов, DS, ML и тех, кто ищет наставников для курсов
2) Убираем пункт "Искать в описании вакансии" - питон часто упоминается, как вспомогательный язык стека.

Остается уже не >3к, а всего 733 вакансии. По всем странам, далеко не все они удаленочные. Из них 472 вакансии требуют опыт от 3 лет, для джуномидлов подходят оставшиеся 261 вакансия.

Повторяем процедуру с резюме - 231 тысяча резюме, ищет работу примерно 14% (это можно вычислить по статистике открытых для обычных пользователей резюме), то есть 32 тысячи человек.

123 человека на вакансию.

А теперь проверни подобные операции с любым другим реальным языком промышленной разработки и сравни результаты.
6 3375651
Например, по Java:
Ищет работу 14к человек.
Количество вакансий с аналогичными фильтрами: 1180. 12 человек на место. Чувствуешь разницу?
7 3375661
>>75651
Хуйню не неси. В джаве такой же уровень конкуренции. Если хочешь поменьше конкуренцию, то надо в девопс/1с/qa стартовать.
8 3375664
>>75661
Я тебе сейчас с цифрами доказал, что уровень конкуренции в 9 раз ниже. В Джаве высокая конкуренция, но в отличие от питона есть вакансии и работа, а в петухоне тысячу вкатунов устраивают голодные игры за полторы вакансии.
9 3375665

>тысячи вкатунов


fix
10 3375669
>>75375 (OP)

>пишешь на питухоне, страдаешь от динамической лапши 24/7


>обмазываешься аннотациями, постепенно интегрируешь mypy, со временем mypy работает в strict режиме.


Сделал из вашего хуёвого и ебучего питона человека, ну и заодно затерпел и не стал перекатываться на сраное говно. Один лишь вопрос почему эта ваша ебучая нелюдь гвидо не сделает типы обязательными, а динамическую лапшу опциональной, то есть как сейчас, но наоборот?
1122e61565.jpg149 Кб, 780x1308
11 3375835
>>75669
В 22:00 прием лекарств, не забывай
image.png34 Кб, 615x453
12 3375869
Сап, при установке либы для airflow вылазит пик1. Почитал в инете, все сводится к установке раста. Это серьезно единственный вариант? В одно сообщении на SO сказали, что pip на какой-то версии переехал на раст, это правда (ничего в гугле про это не нашел больше)?
13 3375885
Хочу создать абстрактный класс. Помимо прочего, этот класс - расширение стандартного словаря.
class SomethingClass(ABC, dict)

В итоге получается так, что я могу создать экземпляр этого абстрактного класса.
Че делать?
14 3375887
>>75885
Типа, даже если унаследуюсь, то могу вызывать абстрактные методы без их перегрузки. Жижа какая-то выходит.
15 3376082
>>75887
Абстрактных методов в том виде, как в C++, в питоне нет. При желании ты это можешь реализовать играясь с метаклассами, но вот это нафиг никому не нужно

А вот против вызова таких методов есть стандартный паттерн, ты бросаешь исключение, специально для этого есть NotImplementedError
16 3376422
>>75649

Ну разве что в джаве ситуация другая, с остальными так же можно всё вывернуть и получить копьё
17 3376427
>>76422
Да хуйню чел запостил какую-то. Ну 200к резюме с упоминанием питона, какая часть из них вообще активная, а не многолетней давности?
Сейчас на хх есть счетчик откликов в мобильной версии, вот вижу на примере его джавы все те же триста шестьсот шестьсот двести двести откликов на первых рандомных вакансиях. Там еще стажерская свежая висит которую 50 человек смотрит. И кста я исключил из поиска андроид и qa на жабе, получилось столько же вакансий как у него на питон
12 человек на место, больше вакансий, каво нахуй наебать пытается челикью
17382388746380.webp82 Кб, 1080x1000
18 3376500
Ссытесь, чмохи?
19 3376508
>>76427
Меньше всего конкуренция на шарпе, вакансий чуть меньше конечно, но не сильно меньше.
1733845279348.jpg83 Кб, 480x640
20 3376635
Как сегодня всё автоматизируют, какой ЯП, фреймворки, библиотеки, боты, нейронки?
Но только, чтобы всё оффлайн работало, то есть обрабатывалось на моём компе и телефоне.


Я хоть в тот тред попал?
21 3376688
>>76500
нет , 100% ему кто-то помогает . Мб просто озвучивает текст
22 3376750
>>76500
Даже смотреть не буду. А ещё КЗОТ запрещает детей нанимать.
23 3376752
>>76635

>Питон-тред


>какой ЯП


>Я хоть в тот тред попал?


Ну сам подумай.
24 3376776
>>76752
А остальные вопросы на ответ?
25 3377050
>>76508

Да не, меньше всего на пэхе
Но надо смириться что будешь скуфо пердедом
26 3377518
Сделал своего первого тг-бота. Даже разместил его на ВПСе. Порадуетесь за меня или отхуесосите?
27 3377572
>>77518

>разместил его на ВПСе


Фу, челядь ебучая. Нет смысла ради каких-то 1000 запросов в месяц арендовать сервер, он будет 0,00001% времени работать и 99,99999% времени простаивать. Бестолково и неэффективно, тупо переплата за простой.
28 3377588
>>77572
Я использовал ВПС друга
17324793739240.jpg182 Кб, 697x645
29 3377615
ПИДОРЫ ПОМОГИТЕ!!!

Автоматизируем чо как на питоне?
30 3377619
>>77615
Что тебе нужно автоматизировать, пидор?
31 3377649
>>77572

>Бестолково и неэффективно, тупо переплата за простой.


Опять ты, клаудшиз.

Ну и что нынче подходит для телеграм-ботов?
32 3377670
>>77588

>Я использовал ВПС друга


Значит твой друг - лох.

>>77649

>Опять ты, клаудшиз.


Не опять, а снова.

>Ну и что нынче подходит для телеграм-ботов?


Cloudflare, очевидно же.
33 3377693
>>77670
У тебя просто нормальных друзей не было
34 3378069
Извините за гумозный вопрос.

Как найти классы-дубликаты?

Есть репозиторий с утилитой-кофигуратором.
В ней есть базовый класс BaseDevice и куча потомков вида DeviceFoobar22(BaseDevice), все конфиги хранятся в аттрибутах потомков.

Конфигов много, под 100 штук.

Хочу вывести список потомков-дубликатов, у которых фактически в ТЕКСТЕ КОДА написано одно и тоже, чтобы прописать им наследование от какого-то общего предка и сократить код. (Возможно это пиздец какая плохая идея и лучше не наследоваться вовсе)

Если собрать все классы, взять их аттрибуты (vars), то они будут уникальными, потому что аттрибуты инстанцируются по разным адресам памяти.

Есть какой-то лексический анализатор или другой способ искать избыточные классы-дубликаты?
35 3378079
>>77670

>Cloudflare, очевидно же.


Бля, уверен что это окажется заманухой. Конторка в принципе гнилая. Лучше уж "VPS друга". Да и сложно это все
photo2025-01-1820-50-02.jpg40 Кб, 680x680
36 3378082
>>77670

>Cloudflare, очевидно же.


Между прочим, что-то новое .
Ты перестал всем рассказывать какой охуенный AWS.
Ждем, когда окончательно образумишься.
Screenshot2.jpg49 Кб, 796x481
37 3378389
Я не владею языками программирования и вообще очень плох в системе, но мне нужно обновить Питон. Подскажите, как сделать это через консоль. Что я не так делаю?
38 3378418
>>78389
Забыл SUDO
39 3378435
>>78389
"командная строка" - это программа cmd.exe
А ты запустил python.exe и пытается туда пихать команды, которые python не понимает.

мимо-добродвач
40 3378460
>>78435
>>78418
Спасибо, обновил Питон, но оказалось, что Cyberdrop и без этого не хочет качать с Бункера.
41 3378581
>>78079

>Бля, уверен что это окажется заманухой. Конторка в принципе гнилая. Лучше уж "VPS друга"


Ну и сиди дальше, плати за 99,99999% простоя. Нет смысла тебя переубеждать.

>>78082
Я пользуюсь, меня всё устраивает. Зачем рассказывать если никакой полезной нагрузки в разговоре не будет. Мне влом тратить время на пустое бла-бла, если будет конкретный вопрос по конкретному сервису - то я отвечу.
42 3378702
>>78581

>Ну и сиди дальше, плати за 99,99999% простоя


Около 0% простоя, поскольку телеграм-бот должен быть поднят всё время, даже если к нему никто не обращается
43 3378918
>>78702
По логике долбоёба выше нужно отключать тг-бота на ночь, чтоб сэкономить 100 рублей.
Попугает танцует под рингтоны.mp48,3 Мб, mp4,
400x400, 0:42
44 3379198
Какими редакторами или IDEшечками пользуются питоняши?
PyCharm довольно крут, спору нет, но дорого, а в комунити нет поддержки джанги и поддержка разных sql ограничена.
Может быть на VSCode перемещаться?
45 3379260
>>79198
Для всего есть vi/vim/emacs. Если ты даже это не осилил, то не утруждай себя программированием.
46 3379299
>>79198
неужели неочевидно что в этом баяне попугая сзади рукой двигают?
47 3380206
>>75388
А веб?

На чем писать веб интерфейс устройства с аутентификацией? Джанго жырноват.
48 3380237
накидайте идей по автоматизации бизнес процессов в промышленности на питончеге?
инбифо: накидал тебе за щеку, проверяй
49 3380651
>>80206

>веб интерфейс


На чем его можно писать кроме жс?
50 3380656
>>80651
Я про серверную часть, очевидно, раз я джангу упомянул.
51 3381293
Аноны, а есть ещё компании, где не ебут мозг скрамами, канбанами, дэйли митингами, созвонами и всем подобным. Зарплату можно поменьше.
52 3381496
>>81293

>а есть ещё компании


да
53 3381502
>>80656
flask какой-нибудь, aiohttp, если основная программа асинхронная
54 3381508
>>81502
Что такое "основная программа"? Фласк тоже вроде асинхронный. А аутентификацию как прикрутить?
55 3381515
>>81508
Ты сайт делаешь, либо основной функционал твоей системы не в веб? То есть для чего тебе аутентификация?

На любом фреймворке можно сделать аутентификацию, под любой есть решения соответствующие. Но система же ещё что-то должна делать?
56 3381519
>>81515
Веб интерфейс устройства, написал же. Ты на рутер заходил?
57 3381555
>>81519
Смысл в том, что функционал интерфейса наверное не самый простой, на этом фоне авторизация лишь небольшая часть. Под это надо фреймворк подбирать. Ещё дальше вопрос в том, как у тебя бэкенд устройством управляет, у тебя синхронные инструменты или asyncio

Если у тебя asyncio-код, то aiohttp удобен, поскольку он построен так, что бы его можешь запускать как отдельный сервис твоей программы, причём можешь запускать, а можешь не запускать. Чаще фреймворки построены так, что всё должно плясать вокруг них, они центральную роль несут, что неудобно.

Короче подумай, какой фреймворк тебе симпатичен, и под него ищи авторизацию. Под любой есть что-нибудь.
58 3381648
Анон, подскажи, как сейчас принято работать с ноутбуками.
Я почитал немного, вижу что в качестве "фронтендов" существуют
- Jupyter Notebook
- JupyterLab
- Какая-то ноутбучная пристройка к вскоду
Что из этого правильнее и/или удобнее юзать?
59 3381654
>>81555
Спасибо за совет. Поищи, что-нибудь есть, но это не точно. А не проще будет джангу взять? Там оно точно есть и работает изкоробки.
60 3381669
>>81648

>JupyterLab


Это обновленный Notebook
61 3381682
>>81648
jupyter notebook classic как будто брошенныйю Там серьезные беды с дебаггером. а у меня в wsl там вообще пизда сетевая какая-от.
Так что остается Jupyter Lab

Ну и Vscode, если ты и вправду погроммист.

>правильнее


Молниеносный детект студента или заводчанина.
В ИТ нет правил. Есть выгоды.
62 3381683
>>81293
Тогда ты будешь постоянно мартышкин труд выполнять.

Ну а созвонами все равно заебут. Без никак вообще.
63 3381727
>>81293
Я в такой. Небольшая контора, людей немного. Созвон раз в неделю.
Дают задачу и если сам можешь справиться, то можно вообще ни с кем не контактировать. Трекеров нет никаких. Можно работать в любое время, хоть ночью.
Минусы:
код невысокого качества, страдающий от динамики Питона
отсутствие документаций
нулевой онбоардинг
большое разнообразие задач: я и CI настраивал и systemd, и фронтенд, бэкэнд, нагрузочные тесты и ещё кучу всего
все проблемы твои личные по типу проект не можешь запустить, виртуалку настроить, контейнер поднять и т.п.
ЗП меньше 300кк наносек
64 3381758
Посоветуйте чего-то вроде gdb отладчика графического для пистона. В дельфях или лазарусе вот охуенная отладка, по строчкам можно ходить, точки останова ставить, смотреть че в в переменных лежит, я заебался принтами дебажить...
65 3381787
>>81758
Пиздец. Разве VSCode нуждается в каких-то советах?
66 3381788
Что вы. В этот vs code вцепились? Чем он лучше pycharm?
67 3381789
>>81758
Пиздец блядь, поставь себе нормальную ide. Я знаю только одну: pycharm
68 3381802
>>81788
Рано или поздно тебе придется писать на других языках. И вот тут то тебе захочется единообразия.
69 3381814
>>81802
Все норм иде от джетбрейн, на всех языках что мне надо было (жава/до диез/фитон).
70 3381824
>>81814

>джетбрейн


Говноговна, выпиливают в конторах на хуй
71 3381826
>>81824
В пользу чего?
72 3381827
>>81814
попробуй купи.

Нет уж. Хватит.
73 3381831
>>81826
Божественного VSCode ну и GigaIDE для совсем упоротых
74 3381836
>>81827
А зачем покупать? В питоне бесплатная версия ок. Ты со сраной? У вас пиратить еще не разрешили?

>>81831
Ок, чем вс код лучше? Это не прыщеговно?
75 3381848
>>81836

>Ок, чем вс код лучше?


Шустрый, куча плагинов, ебически кастомизируется, бесплатно и без повесточки.
76 3381856
>>81848
Пучарм бесплатен. Какой нахуй повесточки?
77 3381867
>>81856

>Какой нахуй повесточки?


Русофобской
78 3381890
>>81867
Во время работы играет путин-хуйло лала лала? Мне похуй на ваши русн епроблемы. Вскод шустрее пучарма?
79 3381891
>>81890

>Мне похуй на ваши русн епроблемы.


Тогда иди на хуй, петух. Вызывай Волгу, там тебе пояснят.
80 3381915
>>81891
Откуда ее вызывать, говно санкционное? Софт ему русофобский, фашисту ебаному.
81 3382513
Аноны, объясните, как это работает:
l1=[1,2,3]
l2=['test1','test2','test3']

res = [x for y in zip(l2, l1) for x in y]

Конкретно - зачем нужна конструкция 'x for y in...'
Ты  дурак что ли.webm826 Кб, webm,
850x372, 0:03
82 3382552
>>81856

>Пучарм бесплатен


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

За нормальную версию у тебя попросят $199 за первый год (потом чуток дешевле).
Ну и чем Pycharm лучше VSCode, чтобы за него $200 отдавать? Просто ЧТО там такого, чего нет в VSCode и за что нужно платить ебаному кабану, чтобы он еще больше распух от денег? который к тому же еще и ренегат, а посему идёт нахуй
image17 Кб, 564x160
83 3382561
>>82513

>Конкретно - зачем нужна конструкция 'x for y in...'


Это то же самое, что на моем пике, но формализованное в виде генератора, который быстрее, моднее и сахарнее.
А zip-объект, в который ты упаковал свои списки содержит примерно такое: ('test1', 1) ('test2', 2) ('test3', 3), то есть, берет из каждого итерирумого объекта по элементу от первого и до того момента, пока не кончится самый короткий из них. Все это упаковывает в набор кортежей.
Я тоже так делаю, когда нужно одновременно проитерироваться сразу по нескольким последовательностям.
84 3382681
>>82552
Чем тебя не устраивает комунити, по пунктам? Обрезок - это VS.

Даже если, ты 200 баксов за год не заработаешь?

>>82561
Я б сказал что тут легкий говнокод.
image.png82 Кб, 689x540
85 3382717
А какая общепринятая практика для менеджмента зависимостей в питоновских проектах?
Я сейчас читаю про Conda и кажется, что это оптимальный инструмент. Но при этом в проектах на глаза мне чаще попадались requirements.txt. Объясните как оно устроено в профессиональной разработке?
86 3382719
>>82717
Типичный блядь питон. Есть pip, есть pipenv, есть конда, есть еще дохуя. Поди сука разберись какой из них хороший.
image22 Кб, 736x149
87 3382768
>>82717
Всё очень просто.
88 3382779
>>82768
Проект с необходимостью точного воспроизведения окружения - использую reqs.txt и там все пакеты с == точными версиями .
89 3382789
>>82681

>Чем тебя не устраивает комунити, по пунктам? Обрезок - это VS.


Зачем ты пытаешься в унылый "сам дурак"? Пукчарм камунити - это обрезок, обмылок, который хорошо подходит для чистого Питхона. Стандартная ситуация, когда ты студент или макака на курсах для начинающих. А речь идет именно о тебе.

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

Я пробовал разные IDE и редакторы, лучше, чем vim, pycharm и vscode - нет. Но vim для красноглазиков, pycharm - хороша только платная версия, в то время как vscode: умеет буквально всё, превосходит по функционалу pycharm, легковесный, с открытым кодом и с намного, намного более развитым сообществом во всех смыслах.
90 3383027
>>82768
А почему не используется везде, например, Conda? Тем более раз уж она популярна у датасаентистов.
Я ее просто беру как пример, просто потому что она вроде бы все умеет, в том числе устанавливать и сам питон.
91 3383030
>>82768
И опять же, вот у тебя на пике написано

>а) просто проект


>...


>б) с необходимостью того-то и того-то


Ну а если одновременно присутствуют разные проекты, разные менеджеры же будут конфликтовать между собой. Опять же получается лучше прицеиться к конкретному менеджеру.
92 3383349
>>82789
Какой сам дурак? Я про мелкомягкую студию.

Я знаю джангистов которые на бесплатном пучарме работали.

> А речь идет именно о тебе.


Что со мной?

Какая еще совместная работа? Ты про VCS?

> vim,


Фубля красноглаз.

Пучарм тоже опенсорс.

Как давно этот vs code выстрелил?
93 3383395
>>82768
requirements.txt + pip дают самое точное воспроизведение окружения

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

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

Но это надо сказать не только питонячья проблема
94 3383409
>>82717

>мне чаще попадались requirements.txt


Зависимости часто в setup.py запихивают, используют setuptools, но суть в целом та же, там тоже указывается диапазон версий для каждого модуля, как в requirements.txt

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

Если ты создаёшь модуль, по хорошему ты очень вдумчиво должен подойти к тому, какие версии в зависимости указывать, на практике даже в профессиональной разработке с этим проблемы бывают. Если ты указал некорректную зависимость, слишком точную, то никакой инструмент не позволит это исправить автоматом.
95 3383423
>>83395
>>83409
Звучит логично. Но тогда объясните нахуя нужны всякие конды?

То есть я понимаю, что они делают больше (контролят версию питона, могут ставить бинарные зависимости), но типа почему/когда /кому целесообразнее использовать pip, а почему конду?
96 3383448
>>83395

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


Это какие, например?

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


Как обходить? Rpc?

>>83423
15-й стандарт. Есть еще pipenv.
97 3383780
Аноны, есть словарь:
dic = {'cat': '15', 'dog': '42', 'fish': '3', 'dog': '1', 'sun': '44', 'fish': '444'}
Его нужно привести к виду:
dic = {'cat': '15', 'dog': ['42', '1'], 'fish': ['3', '444'], 'sun': '44'}

То есть у меня в словаре повторяются ключи с разными значениями, нужно объединить значения по ключу. Как сделать?
image.png13 Кб, 1382x142
98 3383829
vs code. Как фиксить?
image.png9 Кб, 461x158
99 3383834
>>83780

>3780


>97


>Аноны, есть словарь:


https://pastebin.com/XL6Qwk6W
100 3383837
>>83829
если не работает через добавление переменных окружения то переустанови вскод с сбросом настроек и расширений
101 3383843
>>83834
бля пока рефакторил result = {} проебал в начале бро
102 3383846
>>83837
как добавить переменные через окружение?
103 3383853
>>83846
гугл. и это не

> переменные через окружение?


а

> переменные окружения

104 3383873
>>83780>>83834
Массивы лучше использовать с числами, а если строки без вариантов, тогда лучше вот так:

old_animals = {'cat': '15', 'dog': '42,1', 'fish': '3,444', 'sun': '44'}
new_animals = {}

for key,val in animals:
_ new_ids = list(filter(lambda x: x in dict, val.split(',')))
_ new_animals[key] = ",".join(new_ids)
Снимок экрана от 2025-02-08 16-06-22.png239 Кб, 645x516
105 3383888
>>83837

>ереустанови вскод с сбросом настроек и расширений

106 3383901
По Kivy вопрос. Допустим, имею я:
BoxLayout:
id: root
BoxLayout:
id: box
Button:
id: btn
Положим, я удалил box из root. Как сделать, чтобы btn узнал о том, что его теперь нет в отображении?
У меня подобное удаление в программе это постоянное событие, т.к. используются MDI окна и они скрываются/показываются (соответственно через remove_widget и add_widget). На момент, когда MDI окно скрыто, я хочу удалять mouse_pos события из Window, и когда наоборот окно показывается, хочу событие снова регистрировать. Можно конечно хуй забить, и так работает, но это некрасиво как-то чтоли. Из-за этого нагрузка при движении мышью в окне высокая, т.к. у меня много виджетов имеют бинды к Window.mouse_pos (всякие кнопки и прочая хуйня которая должна при наведении мыши подсвечиваться).
107 3383962
>>83780
Как в словаре могут быть повторяющиеся ключи?
108 3383965
>>83962
Этот молодец.

>>83834
>>83873
Мы вам перезвоним.
15938421597310.jpg29 Кб, 400x400
109 3384026
>>83965

>помогите создать многозначный диктионарь


>ахаха! я вам говны невнятной накидал а вы решаете ухаха! пук


Чатжптун ты? Узнал тебя по шизойдным высерам.
110 3384044
>>83901
Не знаю что такое киви, судя по всему какой то гуй, но при любом раскладе кнопка или любой другой элемент это объект в дереве, если ты к нему присобачил какие то методы то они вызываются когда он находится в дереве и в нем всплывают какие-то событя, которые ты обрабатываешь. Не совсем понятно что и кому ты собрался сообщать если объект в дереве отсутствует. Если он есть но скрытый/деактивный то обычно события их игнорируют, если в твоей киве или твоей реализации не игнорируют, то ставь проверку аттрибута hidden и возвращай, либо отцепляй события на время скрытия.
111 3384104
>>83780
Во-первых, как уже сказал анон выше, как в словаре могут поаторяться ключи?

Во-вторых, у вас в питоне что, в стадлибе нету group_by? Серьезно блять?
112 3384121
>>84104

>group_by


Чnо это такое и зачем?
113 3384184
>>83834
Для кого ideone придумали?
114 3384185
>>84104
Если погуглить, может и найтись.
115 3384187
>>83829
Запускай пучарм, там сработает.
116 3384206
>>84187
Пучарм может даже может сам создавать венв и ставить модули из requirmeents.tzt
117 3384280
>>82789

> Если ты реально работаешь, то


> нужна поддержка баз данных


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

> нужна поддержка фреймворко


Только и исключительно если ты пишешь на штанге

> нужна совместная работа


Не нужна
При этом ты не написал про remote execution и дебаггер в докере. Ну, охуительно работаешь, братан

> vscode


> умеет буквально всё


Ага, и 90% из этого "всего" сделано через жопу, чем невозможно пользоваться. Про говнодебаггер и обосранный гит я промолчу, это просто ебаный позор

> превосходит по функционалу pycharm


Удивительные истории,

> легковесный


Легковесный только до той поры, пока ты не поставил 40-50 экстеншенов, чтобы нормально работать.

> с открытым кодом и с намного, намного более развитым сообществом во всех смыслах


Да, это же очень важно. Каждый разработчик после рабочего дня собирается контрибьютить в иде, которой пользуется.
Интересно, а почему ты не написал, что VSCode это говнина на электроне с инпутлагом, а пукчарм это нативное приложение?
118 3384294
>>83829
Активируй венв. Пиздос, ну какие-то базовые концепции работы с консолью же нужно знать
119 3384306
Нахуя дегенераты сравнивают питон с джавой и ноют что вакансий мало? Питон не для этого. Он чтобы ты быстро скрипт написал какой-то и что-то с файлами в одной папке сделал, а не чтобы блядь хуитерпрайз залупу десятилетиями разрабатывать.
120 3384360
>>84306
Почему на питухоне нельзя разрабатывать тырпрайз с таким же успехом как на джава-говне-сисярпе?
121 3384363
>>83965
кабан сказал - макака сделал. начнешь выебываться >>83962 вылетишь с работы
122 3384364
>>83888
на винде иначе не бывает. на линуксе заебись
123 3384365
>>84360
Пчелидзе, на питоне яндекс такси, самокат и авито сделаны. Нахуя ты фантазируешь?
124 3384785
>>84363
Так твой код не работает, он не сохранит нужный кабану список значений. Можешь проверить.
125 3384905
Аноны, я тот хер со словарем >>83780
Короче реально херня вышла - в словаре не может быть одинаковых ключей (я не тестил просто).

В общем, подмогните с такой ситуевиной:
Есть несколько листов вида
x = [cat, 12, sun, 1, fish, 5, cow, 13]
y = [dog, 121, flower, 1, fish, 5, cow, 100]
В этих листах некоторые элементы совпадают. Необходимо все это дело запихнуть в один лист формата:
z = [cat, 12, dog, 121, flower, 1, sun, 1, fish, 5, 5, cow, 13, 100]

Словарь - лучший вариант, но проблема в том, что если из листов сделать словари, потом их замержить, то значение у ключа будет только одно. Например, из вышеуказанного словарь (после мержа) получится примерно такой:
dic = {cat: 12, dog: 121, flower: 1, sun: 1, fish: 5, cow: 100}
А необходимо такой:
dic = {cat: 12, dog: 121, flower: 1, sun: 1, fish: [5, 5], cow: [13, 100]}

Другая проблема в том, что у меня листы генерятся в цикле. Я могу аппендом добавлять данные в новый лист, но как потом его причесать под нужный мне вид {ключ: [значение, значение, значение]}?
126 3385023
>>84905

>Есть несколько листов вида


Ну так какая разница, замени в примерах выше переменные и все.
127 3385050
Эй, вскодники! Как сделать дополнение в импорте? Т..е я пишу Path и он предлагает мне сделать импорт из pathlib.
128 3385059
>>85050
У меня такое даже в неовиме работает на pyright это как раз от вскода лангуаге сервер
129 3385060
>>85059
Так как сделать и почему это из коробки не работает?
130 3385063
>>84905
Я не знаю правильно ли я тебя понял, но сделай примерно вот так:

x = ['cat', '12', 'sun', '1', 'fish', '5', 'cow', '13']
y = ['dog', '121', 'flower', '1', 'fish', '6', 'cow', '100']

merged_list = [x, y]
res_dict = {}

for i in range(0, len(merged_list), 2):
key = merged_list
val = merged_list[i+1]

ext_val = res_dict.setdefault(key, val)
if isinstance(ext_val, list):
ext_val.append(val)
elif ext_val != val:
res_dict[key] = [ext_val, val]

print(res_dict) # {'cat': '12', 'sun': '1', 'fish': ['5', '6'], 'cow': ['13', '100'], 'dog': '121', 'flower': '1'}
image61 Кб, 715x465
131 3385068
>>85063
Я не смог в трифорс
132 3385085
>>85068
Ideone для кого?
133 3385087
>>85060
https://github.com/microsoft/pyright/blob/main/docs/settings.md

python.analysis.autoImportCompletions [boolean]: Determines whether pyright offers auto-import completions.
134 3385090
>>85087
Да не забудь pylance поставить в вскод
135 3385108
>>85090
То есть, надо ставить пипиетарный модуль и ручками конфиг править? Напоминаю, это базовая фича! >>82789, ты где там?
136 3385124
>>85087
Где это менять?
137 3385131
>>85124
Можно мышкой в настройках найти. Или в жсоне CTRL+P Open User Settings (JSON) туда пишешь "python.analysis.autoImportCompletions": true
138 3385139
>>85108
ЖопаБрейнс форсер, уходи со своим говном
139 3385172
>>85139
Форсер? Ты охуела, свыня? Это иде #1.
140 3385173
>>85172

>Это иде #1.


Только в твоих фантазях
141 3385202
Сочетание клавиш для quick fix не показывается.
image292 Кб, 1080x1058
142 3385248
>>85063

>Ideone для кого?


Не понял тебя.
143 3385249
Блджад
это >>85248 сюда >>85085
144 3385381
>>84905
Нахуя тебе это надо? Ты явно пытаешься решить какую-то другую проблему, так что ее и неси, а не эту хуйню со списками
145 3385643
Анон, привет, помоги с проблемой, в какую сторону копать.
В общем, есть python скрипт, который циклично выполняет свою задачу. Запускаю его через bat-файл, содержимое которого title (например script) и команда запуска, всё.
В термина выводятся просто принты о ходе выполнения. Скрипт никакого инпута не требует, живёт сам по себе.
Всё работает нормально, но в какой-нибудь рандомный момент скрипт может зависнуть, а заголовок батника меняется на "Выбор script".
И вот я не пойму, что это такое и из-за чего это может возникнуть?
Проблема особо не гуглится.
Может ли быть такое что в PyCharm параллельно висит "проект" этого скрипта и в момент дебага он запускает одноименный (title такой же как и название проекта) процесс, из-за чего основной скрипт виснет? Однако иногда я дебажу параллельно и норм всё.
146 3385654
>>85249
Google: ideone
147 3385670
>>85643
Какие ватники, о чём ты? Поставь операционную систему вместо виндуса, должно помочь. Если вдруг нет - в питухоне вроде есть нормальный дебаггер из коробки, расставь брейкпоинты и смотри, чё там лежит в переменных. В виндувсе через ватники и даблклики юзер-инпут ты вряд ли нормально пробросишь (да и печатать что-то в цмд.екзе один хуй мерзко), поэтому операционную систему в любом случае придётся установить.
148 3385680
>>85670
Это по работе, поэтому систему поменять не вариант.
Сам скрипт работает нормально, и даже в батнике.
Просто в рандомный момент спустя 3 часа или 15 минут меняется заголовок батника на "Выбор..." и всё.
149 3385694
>>85680

>поэтому систему поменять не вариант.


Ну тогда энжой ё виндус, что тут сказать. Да, виндус - это всегда боль, как только ты пытаешься делать что-то сложнее потреблядства, на которое он и рассчитан - поди отгадай, что у него на этот раз отъебнуло.
150 3385703
>>85694
Иди нахуй, прыщедолбоеб.
151 3385839
>>85703
Пиши тогда на васике или боберпшеле, спермодаун
152 3385856
>>85839
Прыщедолбоеб, питон на винде почти нормально работает. Иди нахуй, то есть на прыщи!
153 3385871
>>85856

>почти нормально работает


Спермодаун, питон на винде это чужеродный портированный с прыщей софт, некрософт его из коробки не поддерживает, нигде ни в каком виде установить не предлагает, зато предлагает дотнет и бобрпшел и прочее свое говно, которое специально создавалось под шинду.

Так что давай проебись отсюда.
154 3385880
ЖопаМозг дебил, это ты?
155 3385881
>>85643
Посмотри все места где скрипт заголовок меняет
156 3385893
>>85871
То есть для тебя скачать инсталлятор это мозговая перегрузка? -15 мозолей штульмана.
image.png81 Кб, 1706x296
157 3385905
аноны, я правильно все пынямаю?
158 3385923
>>85905
нет, у тебя с нулем сравниваецо
159 3385938
>>85923

> нет, у тебя с нулем сравниваецо


чувствую в тебе троллера
160 3386015
>>85905
У меня exception выдало
161 3386019
>>85905
Зачем prev? Почему нельзя пройти от первого до предпоследнего и сравнить элемент с последующим?
162 3386041
>>86019
потому что я нубик и пока не применяю никакие алгоритмы
163 3386047
>>85905
list это функция стандартной библиотеки
Используй что нибудь типа list_of_nums

Числа лучше сравнивать с числами, и инициализировать переменную как:
prev = -1
либо минимальным числом

Ну и непонятно что тебе дает выявление дубликатов, убирать их из массива это пиздец как неэффективно, надо создать новый отсортированный отфильтрованный массив и все.
image.png161 Кб, 3028x512
164 3386053
>>86015
что у тебя не работает?

>>86047
я только изучаю, я полный ноль в погромировании
165 3386093
>>86053
тогда незаморачивайся, пиши как понимаешь
166 3386233
>>85643

> есть python скрипт, который циклично выполняет свою задачу. Запускаю его через bat-файл


Нахуя? В винде есть планировщик заданий. Запускай через него.
167 3386234
>>85905
Почему у тебя отсутствует подсветка синтаксиса? Используй нормальную иде типа пукчарма. И не используй названия из билтинов питона
681499379-941ec.webp53 Кб, 1612x786
168 3386420
>>86233

>В винде есть планировщик


Вот из за него ты и оказался здесь
169 3386480
>>86420
В 2025 году сидеть не на винде/макосе = быть дауном
170 3386514
>>86233
В плане?
Типа настроить запуск cmd.exe, а в передаваемые параметры запуск Python-скрипта?
171 3386529
>>86514
python.exe my_script.py -arg1 value1 -arg2 value2
В чем проблема?
654765675.jpg259 Кб, 1280x720
172 3386560
>>86480

> в 2025г не иметь страницы вконтакте)))



Я с гейоси на линух в свое время ушел из за того что эта ос из линукса с человеческим лицом превращена в окукленную версию ios для десктопа. Линукс наоборот из саморазваливающейся хуйни превратился в нормальную операционную систему, с красивыми и функциональными UI. с понятно работающей и единой системой ярлычков и меню (XGD), с контейнерными приложениями .appimage, с протоном который все стимовские (и не только) игры запускает без проблем практически. есть системд демоны (аналог макосных лаунчд) есть фаирвол (которым можно наебать dpi провайдера) есть вайфай-блютус-4g нетворкинг через встроенный нетворкменеджер, есть запоминание сортировки размера расположения каталогов без всяких .DS_Store как в макоси, темные темы на любой вкус и апскейлинг.

Остались конечно и проблемы, но это мелочи по сравнению с тем что пидор очкастый предлагает своим пользователям. Про Windoшс Retard Edition даже вспоминать тошно
173 3386754
>>86560
Мне впадлу спорить, единственное реальное преимущество линупса сегодня -- это нативный докер. Раньше в принципедокер был только под линукс по сути и сидеть на чем-то кроме него было безумием. Так что я пару лет был вынужден работать с него. Сейчас можно переехать спокойно на wsl с docker desktop'ами и жить не тужить
174 3386825
>>86754

>кокер


Вебмакака, плиз.
175 3386828
>>86825
Хуже, сорт оф датасатанист с облачными вычислениями
176 3388092
Почему питон не стал значимо быстрее во всех сценариях после отключения гила? Получается, проблема была не в нем?
Если так, то в чем? Пыха тоже интерпретируемая, но быстрее питона.
177 3388108
>>88092
Где пыха быстрее?

>>86480
+

Вскододауны, вам завезли такую генерацию кода: пишет func(), quick fix и нам генерируют определение функции? Это базовая фича,,отличающая иде от блокнота.
178 3388165
>>88092

> после отключения гила?


Какого отключения? Ты о чем вообще? Фритрединг это эксперементальная фича, которая непонятно когда готова будет

> Почему питон не стал значимо быстрее во всех сценариях


А в каких сценариях, кроме мультитрединга, он даже в теории мог стать быстрее? Ты вообще понимаешь что такое гил?

> Получается, проблема была не в нем?


Про какую нахуй проблему ты говоришь. Разберись сначала что такое гил, а потом вопросы задавай
179 3388197
https://www.online-python.com/mZsfihbPFR

Если мне нужно передать в метод класса аргумент таким образом как это на втором примере, то как заставить это работать, чтобы явно не писать например d4.roll(4), блядь, ибо смысл класса теряется, хули я могу тогда процедурно писать вообще. Кубики как пример ессесно.
180 3388266
>>88197

> мне нужно передать в метод класса аргумент


> но не передавать аргумент


Чего блять? Вопрос сформулируй нормально.
И в питоне переменные camelCase'ом не пишут, используют snake_case
numberOfSides => number_of_sides
А вот имена классов уже UpperCamelCase
die => Die
181 3388317
>>88108

>Где пыха быстрее?


Гугли тесты, везде быстрее.

>>88165

>Какого отключения? Ты о чем вообще?


Ногил в 13.

>А в каких сценариях, кроме мультитрединга, он даже в теории мог стать быстрее? Ты вообще понимаешь что такое гил?


Во всех.

>Про какую нахуй проблему ты говоришь


Про медленность питона епт.
182 3388332
>>88266
Я бухой, братик. Ща постараюсь.

Условно у нас есть класс:

class Class:
....def __init__(self, some_arg):
........self.some_arg = some_arg
....def my_method(self, some_arg):
........do_something(some_arg)

Создаём его инстанас:
a = Class(x)

При попытке вызвать a.my_method() получаем ошибку того, что нет требуемого позиционного аргумента. Получается инстанс класса не передаёт в метод some_arg, если указать аргумент явно a.my_method(x) то всё работает верно.

Так же вроде бы корректно работает конструкция вида:

....def my_method(self):
........do_something(self.some_arg)

Но вот как реализовать одновременно работу по аргументу, который мы передаём классу инстансу при создании, с возможностью сохранения явной передачи аргумента при вызове метода? Через попытку передавать в аргументы метода self.some_arg или через дополнительную переменную - вылезают ошибки.

И да я ковыряю питон и доки аж 5 час, мне просто нужно написать небольшой (строк на 4000) скриптик на питоне. И желания слушать "обучающий" гундёж на ютубе нет. По этому бест практикс, правильное форматирование кода и нюансы языка мне не ведомы, как-то так.
183 3388357
>>88332
Так в чём проблема написать так:
....def my_method(self, some_arg = None):
........if some_arg if None:
............some_arg = self.some_arg
........do_something(some_arg)
184 3388380
>>88317

> Ногил в 13


Какой ногил, это тестовая фича, которая параметром в билде устанавливается

> Во всех.


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

> Про медленность питона епт.


В скольких компаниях был -- везде переезжали на питон для повышения производительности. А секрет очень прост -- внутри практически всех либ живет чистый си, который ебет даже плюсы по скорости, при этом позволяя разрабатывать раз в 10 быстрее, чем в случае чистого си
>>88332
Тебе уже написали вот тут как можно это решить >>88357
Правда можно написать даже короче, но тут скорее на вкус и цвет
....def my_method(self, some_arg = None):
........some_args = some_args or self.some_args
........do_something(some_arg)
Но ты уверен, что тебе это реально надо? Выглядит как хуйня ради хуйни плюс возможная протечка абстракции
185 3388382
>>88380
>>88357
Пасиб. Да к сожалению нужно, хотя возможно потом перепишу этот момент через какой-то адекватный интерфейс, но пока нужно заставить махорайку работать на уровне "хоть как-то".
186 3388391
>>88380

>Какой ногил, это тестовая фича, которая параметром в билде устанавливается


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

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


>Получается, проблема была не в нем? [не в гиле]



>В скольких компаниях был -- везде переезжали на питон для повышения производительности. А секрет очень прост -- внутри практически всех либ живет чистый си, который ебет даже плюсы по скорости, при этом позволяя разрабатывать раз в 10 быстрее, чем в случае чистого си


Заржал.
187 3388393
>>88391

> Почему питон не стал значимо быстрее во всех сценариях после отключения гила?


Почему после релиза нового чатжпт не упали цены на квартиры в Москве?
188 3388400
>>88393
Ну т.е. ты не знаешь. Иди книжки почитай какие-нибудь, того же Лутца можешь навернуть для начала.
189 3388429
>>88400
Ну т.е. ты не знаешь. Иди книжки почитай какие-нибудь, того же Роджаса можешь навернуть для начала.
190 3388775
почему библиотеку для форматирования назвали блять "black" ?
191 3388795
>>88775
Для инклюзивности
192 3388808
>>88775
Почему во многих проектах, таких как Джанго, стали переименовывать ветки из master в main после того, как сдох нигер уголовник и наркоман? До этого 20 лет всем похеру было.
193 3388844
>>88775
Ты что-то путаешь, она называется ruff.
194 3388906
>>88775
Потому что примерно такого же цвета будут угли, которые останутся от сгоревшей жопы, после использования этого говна
195 3389163
>>75388
Первым же постом отпугиваешь конкурентов?
Ух хитрый негодяй.
196 3389298
>>88844
почему библиотеку для форматирования назвали блять "ruff" ?
197 3389375
>>89298
ruff, как существительное, относится к жестко накрахмаленному оборчатому или плиссированному круглому воротнику из ткани, который носили в XVI и XVII веках
198 3389451
За сколько можно выучить питон до уровня автотестировщика?
199 3389492
>>88844
Скорее всего что-то типа rust-written fast formatter.
200 3389508
>>89451
Неделя, если кодил на ООП
201 3389549
Есть программа на питоне в. exe формате, с сопутствующими скриптами в ее папке.
Перестала работать, пишет, что отсутствует несуществующий файл (поиском проходил), что может быть?
Питон обновлял, в архиве программы нету такого файла (infotor_2.py).
Софт: вьювер оффлайн-версии сайтов в sql формате.
https://drive.google.com/file/d/19E8UflBmd8OdGYvWytrX44MpE4DEH7HF/
202 3389600
>>89549
Всё, разобрался, нужно было переустановить Python и подключить legacy-cgi. Я как понимаю веб-сервер не эмулировался, от этого и ошибки.
203 3389622
>>89451
За 1 день
204 3389717
>>89622
>>89508
Как?

Я ручной тестировщик. На джаве немного писал для себя,ооп понимаю.
С первого взгляда синтаксис питона показался проще джавы.
За месяца 2 смогу освоить полностью ?
205 3389818
>>89717
Чел... у меня пивной животик, я хочу себе отчётливые шесть кубиков на животе, скажи за сколько я смогу их получить ходя в спортзал? Мне надо шоп прям вырисовывались и тёлки текли. Вот скажи, за какое время они появятся? При том, что у меня была пятёрка по физкультуре и я катался на велике.
206 3389823
>>89818
6 месяцев
207 3390019
Зачем в питоне сделано, что до приватных методов все равно можно достучаться?
208 3390020
>>90019
А тебе не по хуй? Написано в доках не лезь, значит не лезь
209 3390098
>>90019
В питоне ооп как в джаваскрипте, без приватных полей и методов, используй черточки:
self._param1
self._myMethod1()

Сделано так потому что семантическое разделение проще как в реализации так и для программиста более выразительнее на самом деле, ибо позволяет без IDE от жидбреинс видеть что приватное а что нет.

Питон вроде как хотел быть легким простым, но даже несмотря на то что он разжирел тенденции таковы что вместо public private static protected abstract interface будет:

(async) function method(self_object, args...) //public
(async) function name(args...) // static
210 3390124
>>90019
Бредик не пишем. До приватных полей можно достучаться в любом языке с рефлексией(а это литералли все языки хоть сколько нибудь популярные). Так что если ты немного подумаешь, то задашь вопрос

> Зачем во всех языках так сделано, что до приватных методов все равно можно достучаться?


И ответ такой -- приват/паблик/протект методы это просто пометка для разработчика, не более. Есть одно функциональное назначение у приватных методов -- не допустить случайного переопределения метода в наследнике(допустим у тебя 50 уровней наследования и какой-нибудь метод self.update, который ты написал в своей реализации, может определяться каким-то из классов наследников и ты все сломаешь). Для такого в питоне есть name mangling с двумя нижними подчеркиваниями
211 3390126
>>90124

> Бредик не пишем


Ну так и не пиши. Съеби вообще нахуй отсюда, рачина.
212 3390130
>>90126
Говно, ебало захлопни и сиди тихонько. Ты даже смог осознать о чем я написал. Пиздец, какой наглый вкатун, услышал краем уха какую-то рыготину, извалялся в ней и пришел в питонтред ей размахивать. Попустись
213 3390332
>>90124
Не пизди, гадон, в топ-1 языке по популярности жс нельзя.
214 3390383
>>90332
Говно, я же тебя сказал -- ты не понимаешь о чем вообще говоришь. 5 минут в гугле
https://github.com/jwalton/babel-plugin-private-class-fields-to-public
Но я не удивлен, как бы классические 3 пункта, по которым легко поймать за руку долбаеба:
1. Получить доступ к приватным полям нельзя
2. Ну, если уж и можно получить доступ к приватным полям, то чем больше действий нужно предпринять разработчику для получения доступа к приватным полям, тем безопаснее что бы это нахуй не значило код
3. Если ограничение доступов никак с безопасностью, то уж наличие private полей и сложность доступа к ним извне это и есть инкапсуляция
215 3390464
>>90383

>babel-plugin-private-class-fields-to-public


>There's this TC39 proposal to add private properties to javascript classes, which are "hard private" - you can't access them from other scopes.


Вот же даун, пиздец

В джаваскрипте нет приватных полей, а если бы были как в джаве и пхп ты не можешь к ним обращаться чисто семантически, их нет в публичной области видимости, в этом их смысл.
216 3390478
>>90383
Ты кретин?
217 3390492
>>90464

> В джаваскрипте нет приватных полей


Это троллинг тупостью?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_properties#syntax

> если бы были как в джаве и пхп ты не можешь к ним обращаться чисто семантически


В джаве и пхп точно так же обращаться можно

> их нет в публичной области видимости, в этом их смысл.


Нету, а обращаться можно. Как так?
>>90478
Нет, а ты?
218 3390499
>>90492
Это недо-приват через спецсимвол (решетку)
Чтобы компилятор просто бил по рукам когда вне метода объекта пытаются обращаться к таким полям.

> В джаве и пхп точно так же обращаться можно


Как "точно так же"?
219 3390530
>>90499

> Это недо-приват через спецсимвол (решетку)


А "недо" потому что тебе не нравится?

> Чтобы компилятор


Ты даже не представляешь насколько глубока кроличья нора в жсе, зачем ты споришь?

> Как "точно так же"?


Точно так же через рефлексию и интроспекцию
pzdc.png87 Кб, 1162x868
220 3391241
Сделал из питон-скрипта standalone екзе при помощи nuitka и получил пикрелейтед при проверке на virustotal нахуй
Пиздец

Как быть? pyinstaller не захотел переваривать мой скрипт, но подозреваю, что с ним будет подобное, если заставлю
221 3391263
>>91241
Нахуя тебе exe файл? Что ты с ним собрался делать?
222 3391268
>>91263
Продавать
Без имени.jpg5 Кб, 225x225
223 3391279
>>91268
Один раз?
224 3391319
>>91241
Все-таки осилил фризинг с pyinstaller (эта хуйня не любит мультипроцессинг и нужно вот так в импорте добавлять оный from multiprocessing import Pool, freeze_support )
Стало лучше, теперь вирустотал выдает 5/72
225 3391324
>>91319
ААА! Вирус! Не кочайти там вирус. Вот смотрите на вирус тотал БолгеносСканерПро показывает что там вирус ТороянНагибатор666
226 3391343
>>91268
Что ты там продавать собрался, шиз? И зачем для этого тебе exe'шник? Не проще создать какой-нибудь инсталлер для винды или хотя бы батник?
227 3391345
Наверняка очередной скриптикид наебенил говноскрапер и пытается за 3 копейки продать его кому-то. Нет чтобы вкатиться на три-четыре сотыги и дунасить целыми днями -- будет хуйней страдать и собирать экзешники на продажу
228 3392927
Питоняши, помогите разобраться. Пытаюсь, разобраться как лучше всего организовать работу функции, но нейросети мне дают разные ответы, не могу прийти к одному решению. Как это делается обычно?

Допустим, есть функция пик1, которая делает действие, но с двумя условиями. Код каждого условия не слишком большой, но уже достаточен, чтобы сделать рефакторинг.

Я могу пойти двумя путями:
1. Под код каждого условия создать две отдельные функции и вынести их в модуль на тот же уровень, что и управляющая функция. Пик 2. Причем тут я добавил нижнее подчеркивание в начало имени новых функций, чтобы показать, что они является "внутренними" и не предназначены для внешнего использования.

2. Сделать почти то же самое, что в предыдущем пункте, но разместить функции внутри самой управляющей функции. Пик 3

Попрошу не обоссывать меня, возможно с очень нубскими вопросами.
229 3392928
>>92927
Забыл добавить, что в первом варианте меня смущает именно то, что само модуль будет "засорен" разного рода мелкими функциями. А при третьем варианте создается иллюзия кого-то порядка что ли.

Как делать принято обычно и как вы делаете чаще всего?
230 3392985
>>92927

>пик1, которая делает действие, но с двумя условиями. Код каждого условия не слишком большой, но уже достаточен, чтобы сделать рефакторинг


Я не вижу для этого причины.
231 3392987
>>92985

>Я не вижу для этого причины.


На самом деле причина есть, код в каждом условии уже довольно объемный и необходимость выделить уже сама навязывается.
232 3392989
>>92985
Бро, вопрос тут не стоит делать рефакторинг или нет, для этого слишком мало данных. Вопрос стоит в том, как делать рефакторинг правильно из двух предложенных вариантов, ну или пусть с каким-то третьим вариантом.
233 3392995
>>92989
В моём понимании не существует "правильного рефакторинга". Всё зависит от окружения.
Если у тебя там всего < 500 строк, то фигачь, что угодно вообще.
А если много кода, то зависит от окружающего кода.
Глядя на 3 картинки, я вижу самое понятное на первой.
234 3392998
>>92995

>А если много кода, то зависит от окружающего кода.


Можешь предположить варианты? Первая часть понятна, что если кода мало, то можно делать как угодно, а если его много какие есть варианты?
235 3393118
>>92998
Ну закинь код куда-нибудь на гитхаб. Проведём код ревью всем тредом.
Я не знаю, что можно сказать по обрывкам пары функций.
236 3393293
>>92927
пик 1 делай максимально дотошно буквально чтобы как книгу можно было читать и выноси даже строчки, если оно тому надо

пик 2 можно еще сделать в виде классов общие по схожести функции чтобы еще больше ориентироваться в коде

пик 3 можно укоротить if и сделать строчки вряд тип если не оч напряжно будет выглядеть

пик 4 можно еще сделать возвращаемые типы и документацию к клоассам

такими шагами и работаем это база
237 3393304
>>92927
Тебе надо сделать две функции вместо одной. У тебя принципиальная ошибка в том, что у тебя в принципе такая функция появилась. Если у тебя в зависимости от параметра функция начинает принципиально разно выполняться, то это две разные функции
Живая природа удивительна - океан.mp41,7 Мб, mp4,
440x480, 0:27
238 3393410
>>93293

>пик 1 делай максимально дотошно буквально чтобы как книгу можно было читать и выноси даже строчки, если оно тому надо


Можешь пожалуйста развернуть мысль по этому примеру? Для меня это выглядит как пиздецовый огород, но судя по всему ты шаришь в этой теме, хотелось бы получить наставления.
239 3393439
>>93410
Я сам чмо немного, этот тоже прав >>93304

Вот задачу берем простую тип например вывести самое большое число, не кратное 3
На вход похуй какой массив

Описываем словами сначала шаги

"""
Создаем переменную result, даем ей значение -1 тк -1 это обычно принято, что ответа нет в задаче
Сортируем массив по убыванию
По каждому элементу проходим, пока не найдем не кратное трем
Результат равно найденному числу
Вернуть результат
"""
Почти каждое предложение/ шаг - функция. Показываем что принимает и чему присваивается ее результат (создаем - переменные, поэтому не считается за функцию)

"""
Создаем переменную result, даем ей значение -1 тк -1 это обычно принято, что ответа нет в задач

Сортированный массив = Сортируем массив по убыванию(массив)

Первое число не кратное трем = По каждому элементу проходим, пока не найдем не кратное трем(сортированный массив)

Результат равно найденному числу

Вернуть результат
"""

Переводим в английский, сокращая название чтобы не было тотальный пиздец в 40 символов + обьявлем переменные

"""
result = -1
sorted_massive(array) = sorting_array(array)
first_not_for_three = find_first_not_for_free(sorted_massive)
result = first_not_for_free
return result
"""

В итоге у нас появилось тело алгоритма рабочего, но нужно сделать еще 2 функции низшего уровня
sorting_array(array) и find_first_not_for_free(sorted_massive)

Там также описываешь что она должна делать
sorting_array(array) тут в питоне можно сразу sorted() или .sort() юзануть ТК язык позволяет, в других языках надо алгоритм подробнее описывать тк там нет такого и руками надо сортировать

В find_first...(Sorted_massive)
Берем элемент
Если он не кратен 3 то return элемент

Как-то так извиняюсь за говнокодьместами
239 3393439
>>93410
Я сам чмо немного, этот тоже прав >>93304

Вот задачу берем простую тип например вывести самое большое число, не кратное 3
На вход похуй какой массив

Описываем словами сначала шаги

"""
Создаем переменную result, даем ей значение -1 тк -1 это обычно принято, что ответа нет в задаче
Сортируем массив по убыванию
По каждому элементу проходим, пока не найдем не кратное трем
Результат равно найденному числу
Вернуть результат
"""
Почти каждое предложение/ шаг - функция. Показываем что принимает и чему присваивается ее результат (создаем - переменные, поэтому не считается за функцию)

"""
Создаем переменную result, даем ей значение -1 тк -1 это обычно принято, что ответа нет в задач

Сортированный массив = Сортируем массив по убыванию(массив)

Первое число не кратное трем = По каждому элементу проходим, пока не найдем не кратное трем(сортированный массив)

Результат равно найденному числу

Вернуть результат
"""

Переводим в английский, сокращая название чтобы не было тотальный пиздец в 40 символов + обьявлем переменные

"""
result = -1
sorted_massive(array) = sorting_array(array)
first_not_for_three = find_first_not_for_free(sorted_massive)
result = first_not_for_free
return result
"""

В итоге у нас появилось тело алгоритма рабочего, но нужно сделать еще 2 функции низшего уровня
sorting_array(array) и find_first_not_for_free(sorted_massive)

Там также описываешь что она должна делать
sorting_array(array) тут в питоне можно сразу sorted() или .sort() юзануть ТК язык позволяет, в других языках надо алгоритм подробнее описывать тк там нет такого и руками надо сортировать

В find_first...(Sorted_massive)
Берем элемент
Если он не кратен 3 то return элемент

Как-то так извиняюсь за говнокодьместами
240 3393440
>>93410
А ну и главное помни, что функции, которые ты делаешь в ходе алгоса своего (низшие функции) стоят сверху по коду, поэтому как огород может выглядеть и то не идеально
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее