Годное видео, пускай и с ошибкой (возможной)... Ты сказал, что через ctypes можно подключать любую библиотеку (я в виду имел библиотеку, написанную на любом языке), но это не так! Python написан на С и поддерживает только С библиотеки. С++ он не поддерживает! Я даже после просмотра ролика пошёл проверил. У меня есть свой проект на С++, своя библиотека с алгоритмами и я не могу использовать их через ctypes. Он просто ничего не видит. Да и сам автор сказал, что можно подключать библиотеки написанные на С и С++, а показал только С. Почему?🤨 Как подключить именно С++ библиотеку через ctypes? Но если не обращать на это внимание, то про всё остальное автор хорошо объяснил. По крайней мере я всё понял.
Контент огонь! Спасибо))) Я сделал решатель судоку, но хочу сделать ещё что-то, чтобы генерировала бы мне сами судоки, которые уже решать, но там миллиарды переборов, если мне нужны сложные поля... может быть переписав на С, я бы решил свою проблему
Хорошо знаю только Python, но ещё могу на Rust писать, и если надо то средние задачи и на других языках могу сделать вроде Java, C++ и т.д. Но тут главное скорее не количество языков, а просто понимание технологий, а так между языками много похожих моментов =)
Хорошо, понятно. Но можно ли превратить .py в .dll т.е. написать .dll(Windows) или .so(Linux) на Python а не на C/C++??? Без использования Cython(через .pyx файл). То есть на прямую.
Python не компилируемый язык, даже если и можно создать подобные файлы, то только с помощью инструментов, ибо придется паковать интерпретатор в том числе, и такие dll будут весить как и полноценный исполняемый файл.
привет, спасибо за контент. Хотел бы предложить снять видос по поводу работы с памятью, что такое сигнатуры, офссеты, как это всё работает технически, т.к. информации по этому реально мало в интернете!
Не знаю, мне какой-то очень быстрый формат видео. Как-то даже когда прематываю назад, то не успеваю понять что там происходит. Весь код новый, дебаггером не проверяется, ошибки не исправляются, я даже не успеваю проникнуться идеей, как все уже заканчивается.
Спасибо! Но увы я так и не уловил сути. ( Я делаю все так же но почему то не работает (. Что то видимо упускаю, и тут это не показано (. Но все равно огромное спасибо тебе за этот ролик!!!
@@zproger Он прекрасно стыкуется и с C/C++. Cython сначала транслируется в C или C++ по выбору, и перед компиляцией в бинарный код можно подтянуть свои же наработки на C/C++. При этом Cython гораздо органичнее встраивается в CPython API.
Ребят, возможно я чего то не знаю, но обьясните дураку. Я понимаю что языки семейства си работают быстрее чем питон, но понту тогда пытатся писать что то на питоне подключать модули и так далее как на видео, если изначально можно писать код на си? Или результат полученный на видео работает быстрее чем просто си? Единственное что мне пришло в голову, это то что в си нет ООП и когда ты работаешь с классами то такая связка может сработать.
Динамически выделять память не очень хорошо? Ну смотри, если ты в питоне используешь то что принимает на ввод строку, то без динамического выделения памяти не обойтись. Изначально интерпретатор не знает, какой длины будет твоя строка. Поэтому там память выделяется динамически. Главное не выделять память динамически в цикле, иначе будет теряться указатель и ты не сможешь освободить эту память.
@@p4m3remostone71 динамическое выделение памяти как инструмент ни хорошо ни плохо, а под ввод строки технически можно в стэке аллоцировать буффер с фиксированным размером, главное чтобы был достаточно большим чтобы вместился ввод, а память в стэке аллоцируется статически, а значит быстрее. Все зависит от того, насколько сильно приходится оптимизировать программму
Ну не очень хорошо, если постоянно малочить, тогда частые набеги в ядро ос будут проц тормозить. А вот если один раз в пул, а потом из него, то получим вполне неплохо. Собственно так питон и делает, потому и не сильно тормозной, всего раз в 40 относительно нативных плюсов…
Хоть я и против проприетарного ПО с закрытым исходным кодом, видео очень понравилось. На самом деле, модули на языке С могут значительно повысить производительность