Основы Python #16: импорт модулей

Поділитися
Вставка
  • Опубліковано 18 гру 2024

КОМЕНТАРІ • 88

  • @andreynomad
    @andreynomad 5 років тому +65

    Стоит добавить про ключевое слово "as" при импорте. Я часто видел, что конструкцию "from some_module import *" используют тогда, когда имя модуля слишком длинное и его просто лень каждый раз писать. В этом случае можно использовать конструкцию "import some_module as some_name" и дальше обращаться к содержимому модуля через some_name.some_function(). Естественно, это самое some_name выбирается коротким и понятным, что-то типа sm.some_function().

    • @attrakcion
      @attrakcion Рік тому

      Здравстуй читатель. Хочу сказать тебе: 'Не отчаивайся'. Все у тебя может получиться. Не нужно думать что те у кого получилось достичь своих целей им просто случайно повезло. Это только так кажеться. Поверьте случайного везения не бывает.
      Ребята хочу вам сказать что случайностей вообще не бывает и вот почему:
      Представь себе выходишь ты в сад и видишь что все деревья в твоем саду повалены. Какая мысль придет к тебе в голову? Вполне возможно ты подумаешь что ночью прошел сильный ураган поваливший деревья. А теперь представь себе что ты также выйдешь в свой сад и увидишь что не все деревья в твоём саду повалены, а каждое третье дерево повалено. Какая мысль придет к тебе в голову на этот раз? Ну врят ли ты здесь все спишешь на ураган. Вполне возможно ты подумаешь что ночью поорудовал какой нибудь злоумышленник.
      А теперь представь что у тебя в коробке 3000 (три тысяча) буквенных символов. И представь что ты подкинул все эти буквы в воздух. Упав на асфальт какова вероятность что эти буквы образуют какое нибудь слово? А какова вероятность что эти буквы образуют какое нибудь предложение? А какова вероятность что эти буквы образуют какой нибудь абзац? А какова вероятность что эти буквы образуют какой нибудь текст? А какова вероятность что эти буквы образуют какую нибудь книгу? Вероятность равна почти нолю.
      А ведь двойная спираль днк намного сложнее устроена чем текст на асфальте.
      Верить в то что там где то сверкнула молния и вот там тоже где то сверкнула молния, а потом произошла химическая реакция и химические элементы бац соединились и образовали сложное химическое вещество, которая вдруг стало бороться за свое сохранение и не просто сохранение, а ещё и воспроизведение себе подобных- это глупо.
      Это все равно что будучи археологом ты наткнешься на руины древнего города и первая мысль которая к тебе в голову придет- это что здесь когда то жили люди построившие этот город. Ну, а если твой коллега скажет: "неа, это просто вон там сверкнула молния и вон там тоже сверкнула молния, а потом началось землетрясение и вот таким образом и образовался этот город". Ты после этого разговора скорее всего попросишь руководство что бы твоего коллегу отстранили от работы в связи с тем что у него поехала крыша.
      Так вот предыдущая ситуация с молнией и химической реакцией еще более нелепая.
      Бытует мнение что наша вселенная хаотична. Но я с этим не соглашусь. Я уверен что наша вселенная упорядоченна.
      Так что ребята случайностей не бывает. Случайного везения просто нет. Наша вселенная не хаотична, а упорядоченна. Просто ставьте цели и достигайте их. И верьте что у вас тоже может получиться. Не сдавайтесь ребята.
      Мой девиз в жизни такой:
      Терпеливо
      Активно
      Учитесь
      Хорошим
      Искренним
      Делам.
      Запомните эту аббревиатуру. И пусть этот девиз сопровождает вас везде.

  • @Artem-kd3ge
    @Artem-kd3ge 5 років тому +87

    Респект! Я считаю, что канал Олега самый годный по Python (на русском языке)! Кто согласен - лайк

    • @Smartd88
      @Smartd88 5 років тому +2

      It каждый день ещё посмотрите. Там для быстрого старта. А за подробностями сюда

  • @ЛихтЭмия
    @ЛихтЭмия Рік тому

    Братан, спасибо за контент. Слушаю на досуге и в голове все встаёт на места.

  • @MyCtulhu
    @MyCtulhu 5 років тому +11

    Олег спасибо, как всегда без воды. Приятно слушать.
    P.S запили когда нибудь стримчанский, мне кажется интересно будет посмотреть.

  • @Anubis174
    @Anubis174 2 роки тому

    автор - красавчик капитальный! лаконично и просто объяснил ответ на мой вопрос!

  • @d-sem
    @d-sem 2 роки тому

    С большим удовольствием на одном дыхании просмотрел весь плейлист.
    Спасибо большое автору за проделанную работу.

  • @artemkaliuzhnyi8276
    @artemkaliuzhnyi8276 4 роки тому +1

    Чувак, ты царище. Так по божески растолковывать все темы уроков можешь только ты. Респект тебе, удачи

  • @ciklomat
    @ciklomat Рік тому

    Это действительно важная информация! Ранее я слышал ответ на вопрос : А почему нужно писать _name_==_main_ потому что так надо и это просто кто то придумал.

  • @ata.ibragimoff
    @ata.ibragimoff 4 роки тому +10

    Дошёл до последнего урока из данного видеокурса и с уверенностью заявляю - лучший курс по Python для уже имеющих поверхностные понятия о нём! Надеюсь, что будет продолжение и вы затронете тему ООП, думаю многие ждут этого. А вам спасибо!

    • @soratnikov
      @soratnikov 3 роки тому

      На Patreon автора есть курс по ООП. Достаточно ли для его прохождения знаний, полученных из этого плейлиста?

    • @ata.ibragimoff
      @ata.ibragimoff 3 роки тому

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

    • @soratnikov
      @soratnikov 3 роки тому

      @@ata.ibragimoff благодарю вас за ответ. Успехов в деятельности!

    • @ata.ibragimoff
      @ata.ibragimoff 3 роки тому

      @@soratnikov Взаимно

  • @mazur_vg
    @mazur_vg 3 роки тому

    Наконец-то понятное объяснение про то, что такое __name__ и __main__ Спасибо!!!

  • @leomysky
    @leomysky 4 роки тому

    Когда заканчивается целый плейлист, чувствую себя причастным к касте особенных людей
    Спасибо за это ощущение и уроки

  • @aydarspace5500
    @aydarspace5500 3 роки тому

    это лучшая лекция в мире!!!

  • @joma0305
    @joma0305 5 років тому

    ТЫ Лучший! Спасибо за уроки! про main просто раз и навсегда закрыл вопрос мне. Жду следующего!

  • @realKeiichiArt
    @realKeiichiArt 5 років тому +17

    Спасибо Вам за профессиональное объяснение!
    Можете ещё рассказать как правильно организовать импорт с использованием приложения (__init__)?
    Мне интересно, если у меня в приложении имеется модуль, корректно ли его импортировать в несколько других модулей данного приложения? Не возникнет ли многократного исполнения данного импортируемого модуля?
    Возможно, есть более правильный подход, или best-practise? Или какие-то подводные камни?
    Был бы очень признателен вам за совет :)

    • @attrakcion
      @attrakcion Рік тому

      Здравстуй читатель. Хочу сказать тебе: 'Не отчаивайся'. Все у тебя может получиться. Не нужно думать что те у кого получилось достичь своих целей им просто случайно повезло. Это только так кажеться. Поверьте случайного везения не бывает.
      Ребята хочу вам сказать что случайностей вообще не бывает и вот почему:
      Представь себе выходишь ты в сад и видишь что все деревья в твоем саду повалены. Какая мысль придет к тебе в голову? Вполне возможно ты подумаешь что ночью прошел сильный ураган поваливший деревья. А теперь представь себе что ты также выйдешь в свой сад и увидишь что не все деревья в твоём саду повалены, а каждое третье дерево повалено. Какая мысль придет к тебе в голову на этот раз? Ну врят ли ты здесь все спишешь на ураган. Вполне возможно ты подумаешь что ночью поорудовал какой нибудь злоумышленник.
      А теперь представь что у тебя в коробке 3000 (три тысяча) буквенных символов. И представь что ты подкинул все эти буквы в воздух. Упав на асфальт какова вероятность что эти буквы образуют какое нибудь слово? А какова вероятность что эти буквы образуют какое нибудь предложение? А какова вероятность что эти буквы образуют какой нибудь абзац? А какова вероятность что эти буквы образуют какой нибудь текст? А какова вероятность что эти буквы образуют какую нибудь книгу? Вероятность равна почти нолю.
      А ведь двойная спираль днк намного сложнее устроена чем текст на асфальте.
      Верить в то что там где то сверкнула молния и вот там тоже где то сверкнула молния, а потом произошла химическая реакция и химические элементы бац соединились и образовали сложное химическое вещество, которая вдруг стало бороться за свое сохранение и не просто сохранение, а ещё и воспроизведение себе подобных- это глупо.
      Это все равно что будучи археологом ты наткнешься на руины древнего города и первая мысль которая к тебе в голову придет- это что здесь когда то жили люди построившие этот город. Ну, а если твой коллега скажет: "неа, это просто вон там сверкнула молния и вон там тоже сверкнула молния, а потом началось землетрясение и вот таким образом и образовался этот город". Ты после этого разговора скорее всего попросишь руководство что бы твоего коллегу отстранили от работы в связи с тем что у него поехала крыша.
      Так вот предыдущая ситуация с молнией и химической реакцией еще более нелепая.
      Бытует мнение что наша вселенная хаотична. Но я с этим не соглашусь. Я уверен что наша вселенная упорядоченна.
      Так что ребята случайностей не бывает. Случайного везения просто нет. Наша вселенная не хаотична, а упорядоченна. Просто ставьте цели и достигайте их. И верьте что у вас тоже может получиться. Не сдавайтесь ребята.
      Мой девиз в жизни такой:
      Терпеливо
      Активно
      Учитесь
      Хорошим
      Искренним
      Делам.
      Запомните эту аббревиатуру. И пусть этот девиз сопровождает вас везде.

  • @itprofit32
    @itprofit32 4 роки тому

    Олег, ты крутой чувак ! Такого годного ит контента оч мало в рунете. Спасибо!

  • @pashace
    @pashace 5 років тому +1

    инфа супер! ждём ООП

  • @ZeichenBosen
    @ZeichenBosen 2 роки тому

    Жаль, что я сразу не пришёл изучать видео Олега, после направления сюда Констатином. Многие вещи встают на свои места.

  • @nikitarodin4238
    @nikitarodin4238 5 років тому +2

    Доходчиво, спасибо.

  • @THG6196
    @THG6196 4 роки тому

    Спасибо за подробное объяснение, конечно же лайк.

  • @olegtaranov8451
    @olegtaranov8451 3 роки тому

    Все очень просто и понятно, спасибо!

  • @IGORVBORODIN
    @IGORVBORODIN 4 роки тому +3

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

  • @marinaurrey5246
    @marinaurrey5246 5 років тому +1

    Очень полезно! Спасибо)

  • @yana-9735
    @yana-9735 2 роки тому

    спасибо! а есть продолжение?

  • @mikoajzaiarnyi7044
    @mikoajzaiarnyi7044 3 роки тому

    Спасибо, крутой урок!

  • @NurakhmetDev
    @NurakhmetDev Місяць тому

    спс бро за контент

  • @Demand77
    @Demand77 5 років тому +10

    Олег, сделай пожалуйста видео по ООП на Python.

    • @oxygensss4390
      @oxygensss4390 4 роки тому

      а что значит объектно ориентрованное программирование? Простым языком

    • @anti_middle_ages
      @anti_middle_ages 2 роки тому +1

      @@oxygensss4390
      Функция - это шаблон, который мы используем, чтобы не повторять код несколько раз.
      ООП позволяет делать похожие шаблоны, но с более сложной реализацией. Цель везде одинаковая - исключить повторение кода, разбить сложный код на более простые элементы.

  • @Smartd88
    @Smartd88 5 років тому +1

    Олег, благодарю за видео, очень подробно объяснили. У меня сейчас возникла проблема при относительном импорте "form .some_module import Class". Проблема решилась на данном этапе просто. Мне относительный импорт и не нужен был. Но в дальнейшем планирую использовать файл как модуль(пакет). Будет ли у вас видео по созданию собственных модулей? И разъяснения к PEP328? Спасибо

  • @cegthgtlhj
    @cegthgtlhj 5 років тому +1

    From config with love = из Парижа с Любовью )

  • @jewwrld9385
    @jewwrld9385 2 роки тому

    Доброго времени суток.Как сделать, если у меня есть две разные программы на питоне Proga1, Proga2. Proga2 в ней есть функция, которую нужно импортировать в Proga1. Пробовал import Proga2. Не получается

  • @djbob9757
    @djbob9757 2 роки тому

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

  • @КонстантинКомиссаров-ж1э

    Спасибо, я бы с удовольствием послушал эту тему подробнее - например, недавно я пытался импортировать модуль с помощью вот такой конструкции
    from ..module_name import smthng, Но оказалось, что при импорте нельзя подниматься выше, чем тот уровень папки, в которой запущен файл. Также, было бы круто рассказать откуда python берет пути, по которым он ищет стандартные модули и любые другие модули, что можно добавлять в этот список и свои пути тоже, если нужно. Ну и про __init__, конечно. На мой взгляд это тоже вполне подходит для новичков. Я вот новичок и я бы очень хотел такой видос)

    • @zaemiel
      @zaemiel  5 років тому +1

      я здесь про импорт модулей. Импорт пакетов - отдельная тема.

  • @genykgenyk5684
    @genykgenyk5684 5 років тому

    PythonMAN! Герой

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 3 роки тому

    Есть ли причины импортировать отдельные объекты из модуля с точки зрения оптимальности программы?

  • @Olejanishe
    @Olejanishe 3 роки тому

    А как импортировать модули, находящиеся в других директориях?

  • @АлексейСергеев-ы9и

    Здравствуйте, подскажите почему var.lower(), math. ceil(var), как с импортами этими разобраться, почему переменные иногда в скобках иногда перед точкой?

    • @antoniog.9098
      @antoniog.9098 3 роки тому

      lower() - это метод объекта, лежащего в переменной var (Если быть более точным, то в данном случае это строковый объект. А если быть ещё более точным, то объект не лежит в переменной, а данная переменная на него просто ссылается). Ceil() - это функция, принадлежащая модулю math, и в данном случае объект, на который ссылается переменная var, уже является аргументом этой функции (если говорить проще, то содержимое var в данном случае является объектом, над которыми функция ceil сейчас будет производить свои вычисления)

  • @FilmicFil
    @FilmicFil 5 років тому +1

    Олег, привет. Немного не по теме. Какой по твоему минимальный стек для джуна, что бы его вообще рассматривали? Есть миллион статей на эту тему, но ты один из самых рассудительных и вменяемых чуваков в it пространстве ютуба. Интересно услышать твое мнение.

    • @zaemiel
      @zaemiel  5 років тому +8

      Ни один разработчик не может на него ответить.
      Чтобы ответить на этот вопрос нужно периодически бегать по собеседованиям, да так, чтобы вас не брали на работу. Либо быть HR-ом, через которого проходит огромный поток соискателей. Либо тимлидом или тех. директором, который собеседует людей - эти берут не среднего джуна по палате, а конкретного под их стек.
      Можно проанализировать вакансии. Тогда картина может быть примерно такой:
      - отличное знание Python и стандартной библиотеки
      - ООП
      - Django/Flask
      - понимание микросервисной архитектуры.
      - Поскольку микросервисы, то логичным следствием из этого может быть:
      * знание REST/GraphQL (соответственно DjangoREST\Django-Graphene и аналоги у Flask). Но это требование и не обязательно может быть связано с использованием микросервисов.
      * Понимание Асинхронности, которая может тянуть за собой Celery, и которая, в свою очередь, может тянуть за собой Redis/RabbitMQ
      - консольный git
      - работа в терминале - Linux/MacOS
      Как-то так я это вижу.
      Если это все есть, то с тестовым заданием - думаю, что очень многим можете подойти даже и без опыта промышленной разработки.

    • @FilmicFil
      @FilmicFil 5 років тому +1

      @@zaemiel Собственно, я примерно этого ожидал. Спасибо за развернутый ответ, Олег, и за весь материал на канале) Отличный контент

  • @ВладимирБобко-ь5в
    @ВладимирБобко-ь5в 5 років тому +1

    Добрый день. Подскажите, а по ООП видео уроки будут?

  • @Topis1986
    @Topis1986 5 років тому

    Добрый день, как всегда отличный урок, спасибо большое)) Созрел вопрос, почему при скачивании модуля pip install pyTelegramBotAPI
    Мы его импортируем через другое имя: import telebot, где прописывается это соответствие?

    • @zaemiel
      @zaemiel  5 років тому +1

      Оно описывается вот здесь:
      github.com/eternnoir/pyTelegramBotAPI
      telebot - это папка проекта, пакет (package)

  • @sammygun84
    @sammygun84 4 роки тому

    Спасибо Олег больше за контент жаль, что пропал с своего ютуб канал. Еще хотел заниматься по твоим урокам по flask и django можно ли в 2020 не устарело ли ? Еще раз спасибо за контент, не становись как sorax по javascrypt:)

  • @15bleach51
    @15bleach51 4 роки тому

    Спасибо! Будут ли еще видео в рамках этого курса? Если нет, видео из какого плейлиста следует смотреть для дальнейшего обучения?

    • @Zeding_Stuff
      @Zeding_Stuff 3 роки тому

      python casts
      потом платный курс по ооп

    • @Zeding_Stuff
      @Zeding_Stuff 3 роки тому

      ну и плюс решать лабы на codewars, практика очень важна

    • @lauriekatan4927
      @lauriekatan4927 2 роки тому

      @@Zeding_Stuff после этого плейлиста надо ооп изучать?

    • @lauriekatan4927
      @lauriekatan4927 2 роки тому

      @@Zeding_Stuff а все понял)

  • @nurlanabdullin8866
    @nurlanabdullin8866 4 роки тому

    жаль что нет продолжения, все равно спасибо

  • @sainco3036
    @sainco3036 5 років тому

    Спасибо.

  • @АндрейБессмертный-у6я

    Это тоже автозамена у Атома, где ifmain заменяется на if __name__ == '__main__': ?

    • @АндрейБессмертный-у6я
      @АндрейБессмертный-у6я 5 років тому

      Кстати, спасибо за видосы, на одном дыхании, офигенно!

    • @zaemiel
      @zaemiel  5 років тому

      Спасибо.
      Да, это встроенная функциональность Atom'а. Если бы этого не было бы, то можно сделать сниппеты - с аналогичной целью и эффектом.

  • @_skeptik
    @_skeptik 3 роки тому

    Лайк за Линукс Минт

  • @userTeams
    @userTeams 2 роки тому

    неполучается импортировать код во второй файл

  • @ibrahimoglu
    @ibrahimoglu 3 роки тому

    👍

  • @ОлегКроль-х2д
    @ОлегКроль-х2д 5 років тому

    Расскажи о декораторах пожалуйста)

    • @zaemiel
      @zaemiel  5 років тому +1

      уже рассказывал - Python casts. Декораторы на пальцах

    • @ОлегКроль-х2д
      @ОлегКроль-х2д 5 років тому

      @@zaemiel спасибо!!

  • @igorkim4654
    @igorkim4654 5 років тому

    Подскажите, пожалуйста!
    Решил использовать фреймворк pytest и редактор pycharm. тестовые данный храню в отдельном файле в переменных и в словарях.
    импортирую этот файл в файл с тестовыми функциями и получаю ошибку (No module named data_for_test. data_for_test). Почему?
    До этого работало без pytest и в vs code

    • @zaemiel
      @zaemiel  5 років тому

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

    • @igorkim4654
      @igorkim4654 5 років тому

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

  • @evilishant9336
    @evilishant9336 5 років тому

    Ребят, никто не знает что случилось с каналом djlessons?

  • @nix4350
    @nix4350 Рік тому

    Чуть не уснул

    • @zaemiel
      @zaemiel  Рік тому

      Прекрасно!

  • @АртемШлома-и3к
    @АртемШлома-и3к Рік тому

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

  • @maiorchiks3107
    @maiorchiks3107 3 роки тому

    ничего не понял про нейм мейн(

    • @antoniog.9098
      @antoniog.9098 3 роки тому

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

  • @АйаЙайа-ы3ж
    @АйаЙайа-ы3ж 3 роки тому

    '...мы покончили'

  • @alexanderpadalka5708
    @alexanderpadalka5708 3 роки тому

  • @МихаилХолостов-р1п

    Даже на х2 медленно говорит

  • @eugennegue3578
    @eugennegue3578 5 років тому +1

    Спасибо