#48. Импорт собственных модулей | Python для начинающих

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

КОМЕНТАРІ • 88

  • @KonstantinPrydnikov1
    @KonstantinPrydnikov1 3 роки тому +19

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

  • @Nekketsu-z8m
    @Nekketsu-z8m Рік тому +9

    Наконееееец то я понял этот пресловутый __name__ == __main__ . Я столько материала пересмотрел и все в один голос: что бы сделать модуль запускаемым пропишите это фрагмент кода.... Всё!! на этом объяснение у всех почему то заканчивается!!! Откуда этот __name__? зачем проводить условие сравнения с __main__? ощущение как будто эти псевдоПреподователи зазубрили и крепко держат у себя в уме(просто напишу этот фрагмент кода и всё по идее будет работать, а моей аудитории скажу что этот фрагмент делает модуль запускаемым🤯🤯🤯🤯). Спасибо тебе Сергей! Жаль я столько времени, усилий и денег потратил на прочие ресурсы обучения. Твои способности доносить до слущающего просто великолепны! Я сдерживался все это время чтобы оценить тебя как знающего свое дело как преподаватель (ну учит в целом не плохо, получше остальных, но с каждым разом убеждался(вот же очередной внятный ответ на мои вопросы) все больше и больше, и этот загадочный __name__==__main__ стал МЕГАочевидным для меня, чего раньше я никак не мог впустить себе в голову и откладывал на неопределенное время!!)

  • @anfcos
    @anfcos 2 роки тому +7

    СПАСИБО! я наконец-то поняла зачем нужна конструкция со сравнением __name__ и __main__ :)

  • @Ruslan501
    @Ruslan501 11 місяців тому +1

    Сергей, шикарное объяснение. Спасибо!

  • @dizogdizog2591
    @dizogdizog2591 11 місяців тому +2

    Спасибо тебе Добрый Человек!!!!!

  • @aleksandr_nokhrin
    @aleksandr_nokhrin Рік тому +2

    спасибо за разъяснения про path. Невероятно понятные и грамотные уроки

  • @problemrihot8497
    @problemrihot8497 Рік тому +3

    Чем больше смотрю курс,тем больше он мне нравится

  • @СарматПересветов

    просто огоромнейшее спасибо, все очень доступно обьясняете

  • @denchp253
    @denchp253 Рік тому +3

    жаль нельзя лайк несколько раз поставить, респект за такие уроки

  • @alexgump3725
    @alexgump3725 Рік тому +2

    Просто супер про импорты, хто самая темная тема в питоне )

  • @diplomdeady
    @diplomdeady 3 роки тому +5

    УРА! НАконец-то мне нормально объяснили про __main__ )) СПасибо

  • @kiber7575
    @kiber7575 8 місяців тому

    Однозначно в самые первые закладки по Python. Пол дня лопатил какой то кал в интернете. Толком ни кто объяснить не может. У вас всё как всегда по полочкам и в одном месте. Огромное спасибо!

  • @nikgavrilov993
    @nikgavrilov993 2 роки тому +5

    Я и не думал, что создание и импорт своих модулей так прост )
    Спасибо!

  • @onemasterlomaster1829
    @onemasterlomaster1829 3 роки тому +3

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

  • @andredru4278
    @andredru4278 10 місяців тому +1

    Спасибо. Лучше, чем я ожидал )

  • @tbassir9076
    @tbassir9076 Рік тому +3

    Тут всё вроде понятно, но с другой стороны немного запутанно и придётся проходить ещё не один раз, всё равно респект!

  • @raman_chmirou
    @raman_chmirou Рік тому +1

    ты красава. просто классные объяснения

  • @vitalybessonov6138
    @vitalybessonov6138 Рік тому +1

    Круто, наконец то я понял зачем нужен main =name., Спасибо за объяснение!

  • @donfedor007
    @donfedor007 3 роки тому +2

    Спасибо ! Многое для себя уяснил!

  • @bienerustv4715
    @bienerustv4715 3 роки тому +3

    очень полезно и поучительно, спасибо

  • @СультимЦыренов-ъ5ф
    @СультимЦыренов-ъ5ф 3 роки тому +2

    Спасибо за абсолютный импорт

  • @nickyr42
    @nickyr42 2 роки тому +5

    Спасибо за урок. Разберите пожалуйста, как импортировать функцию из модуля, если головной проект лежит в Папке №1 -> Модуль X, а нужная функция в Папке № 2 -> Модуль Y ? Папки друг в друга не вложены. И правильно ли будет засунуть эти папки (каталоги) в пакет и через __init__ импортировать нужную функцию?

  • @johnmazepa
    @johnmazepa Рік тому +3

    @selfedu, Вас уже возможно поправляли на эту тему, но я на всякий случай сделаю замечание:
    'MATH' на английском читается как 'МАТ', либо, как учат питерских блогеров, 'МАФ'. A 'MAЧ' у современных учащихся вызывает любые ассоциации, но только не связанные с математикой.
    то же самое относительно слова 'PATH' и ему подобным

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

      непосредственно по теме урока вопросов нет. доходчиво, как всегда!

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

      Вас уже наверное тоже поправляли но MATH имеет на конце TH (Глухой зубной щелевой согласный, обозначение «θ») которого в русском вообще нет, но ближайший аналог это буква С а не Т. А вот Сергей произносит матЧ, потому что на конце буква эйЧ , и если вы перевернете букву Ч то обнаружите букву h

  • @johnmazepa
    @johnmazepa Рік тому +4

    КАТАЛОГ, ФОЛДЕР, ДИРЕКТОРИЯ - это просто синонимы к привычному слову ПАПКА, которые употребляются в зависимости от контекста.
    это на случай, если кого-то испугали или запутали незнакомые слова.

  • @max325475685
    @max325475685 2 роки тому +20

    Очень печально, что у хороших видео-обучалок питону мало просмотров.

  • @illiukhin
    @illiukhin 3 роки тому +2

    спасибо

  • @sergeykarandeev4303
    @sergeykarandeev4303 3 роки тому +2

    Спасибо!!!

  • @ВладимирЛазарев-п3я

    Спасибо за уроки. Было бы хорошо показать разбиение на модули в программе с ООП.

  • @Ислам-к3ъ
    @Ислам-к3ъ 4 місяці тому +1

    Спасибо за урок! Один вопрос: как импортировать модуль из другого проекта? Я и в path писал путь к папке проекта, но не помогло.

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

    А в чем разница 'текущий каталог' и 'рабочий каталог'. Текущий каталог это тот в котором выполняется программа. Но в примере рабочий не является текущим он просто внешний.
    Спасибо! Очень крутой урок.

    • @selfedu_rus
      @selfedu_rus  3 роки тому +3

      Рабочий каталог устанавливается окружением, в данном случае PyCharm, это тот каталог, относительно которого определяются другие каталоги, если используются относительные пути. А текущий - это тот, в котором находится модуль (файл py).

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

      @@selfedu_rus Так и подумал сперва, спасибо !

  • @impellergimpeller5133
    @impellergimpeller5133 3 роки тому +3

    👍👍👍👍👍

  • @alisher9442
    @alisher9442 3 роки тому +2

    *Здравствуйте будет ли уроки по парсингу сайтов*

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

    12:19 в моем случае путь до рабочей директории не появляется. Какие могут быть причины?

  • @ld_xameleon_ld6384
    @ld_xameleon_ld6384 2 роки тому +3

    А как можно так-же, делать 3 модуля как у вас, на телефоне?

  • @ayqikz
    @ayqikz Рік тому +1

    Legend

  • @ПавелГолубев-п8о
    @ПавелГолубев-п8о 3 роки тому +3

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

  • @a_gassi
    @a_gassi Рік тому +2

    Я правильно понимаю, что добавленный через sys.path.append модуль будет доступен только в текущей сессии?

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

      не пробовал, скорее всего, т.к. sys обнулится потом

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

    То есть если в 2х фалах вызывающих друг друга, если будет import и importlib.reload , то в таком случае они уже будут вызывать друг друга до бесконечности?

    • @selfedu_rus
      @selfedu_rus  3 роки тому +2

      Ха, не пробовал ) Думаю, при reload будет перегружаться только текущий модуль, но не связанные с ним, но нужно проверять!

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

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

    • @rad3
      @rad3 3 роки тому +3

      Если в 1м коде ex1:
      -----------------------------
      import importlib
      import ex2
      print('1.1')
      importlib.reload(ex2)
      print('1.2')
      ------------------------------
      А во 2м ex2:
      -------------------------------
      import importlib
      import ex1
      print('2.1')
      importlib.reload(ex1)
      print('2.2')
      -------------------------------
      Выдает при запуски 1го файла:
      -----------------------------------------
      1.1
      2.1
      1.1
      1.2
      2.2
      1.2
      2.1
      1.1
      2.1
      2.2
      1.2
      2.2
      1.1
      2.1
      1.1
      1.2
      2.2
      1.2
      ---------------------------------

    • @Бабайка-т8ы
      @Бабайка-т8ы 3 роки тому

      @@selfedu_rus , а вот будет круто, если найдёте объяснение тому поведению, что продемонстрировал @Юра Радионов

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

    👍

  • @1ks_SPOT
    @1ks_SPOT Рік тому +2

    math читается - месс а не мач но всьо равно уроки крутые не смотря на то что пайтон требует время

  • @yuriitkachenko2115
    @yuriitkachenko2115 3 роки тому +2

    будет ли продолжения курса на Stepik&

    • @selfedu_rus
      @selfedu_rus  3 роки тому +1

      пока незнаю, непросто это )

    • @yuriitkachenko2115
      @yuriitkachenko2115 3 роки тому +1

      @@selfedu_rus я понимаю , но все же надеюсь что вы сможете (

  • @ildarvalitov2568
    @ildarvalitov2568 Рік тому +2

    Спасибо, но никогда не привыкну к match и patch)

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

    А что такое рабочий каталог, как Python определяет это?

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

    Здравствуйте, вы берете заказы? Как можно с вами связаться. Мне нужно лабу по нейронным сетям сделать

    • @selfedu_rus
      @selfedu_rus  3 роки тому +1

      Вот, специально написал: ua-cam.com/users/postUgybNtp2jm5lG5sdUS54AaABCQ

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

    Автоматом выставил from folder import mymodule

  • @Повар-ф8в
    @Повар-ф8в 3 роки тому +2

    А как питон определяет рабочий каталог?

    • @selfedu_rus
      @selfedu_rus  3 роки тому +1

      у него есть предустановленные пути поиска библиотек + тот каталог, что определен текущим проектом в PyCharm (обычно, это каталог запускаемого файла)

    • @Повар-ф8в
      @Повар-ф8в 3 роки тому +1

      @@selfedu_rus спасибо. То есть это сама среда PyCharm настраивает? А если я через обычный редактор запускаю? Можно как то вручную это сделать?

    • @selfedu_rus
      @selfedu_rus  3 роки тому +1

      @@Повар-ф8в да, прописать путь в коллекции sys.path

  • @kurt-miller
    @kurt-miller 3 роки тому +2

    Циклический импорт, __all__, поведение с подчеркивания - не раскрыто.

  • @gbo4net
    @gbo4net 2 роки тому +2

    Так как преподаватель не всегда знает где у новичка возникнет вопрос задам ег я пока я ещё новичёк ))))
    В видео на ua-cam.com/video/hWsBYrASuqU/v-deo.html времени есть выражение
    - ПОВТОРНО ИМПОРТИРОВАТЬ.....
    ВОПРОС :
    Зачем это нужно, для чего нужно и так далее.
    В курсе степика нет объяснения для чего это нужно, в каких случаях используется, нет примера из жизниб что-бы не просто запомнить информацию ( напомню я новичек- чайник) а ПОНЯТЬ в чем смысл такого метода как повторный запуск import если он уже прописан в начале файла..... (((((

  • @Narendill
    @Narendill Рік тому +1

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

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

      Внутренние ф-ии следует начинать с _. Лучше делать from math import sin as _sin, и использовать внутри кода в таком виде (_sin). Тогда этот _sin должен игнорироваться IDE.

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

    Спасибо за хороший курс. Однако на будущее советую английские слова поизносить правильно. Math читает, как мас. Не путать с популярным словом match - мaтч

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

      path - пас (путь). не путать с patch - заплпата, также часто используемое в программировании слово

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

      Не кАталог, а каталОг. Или тогда уж просто папка

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

      Чел, тебе не пофигу ли? Вы на такие мелочи обращаете внимание, когда автор даёт кладезь полезной инфы. Походу у меня есть кумир преподавания. Спасибо Автору!

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

    в Visual Studio Code не получается запустить функцию в другом окне, может кто то объяснить как это сделать?

    • @MrSasuke1337
      @MrSasuke1337 11 місяців тому

      Просто качаешь пайчарм и все

  • @ГуняГуняев-ю7ф
    @ГуняГуняев-ю7ф 2 роки тому +1

    так как задавать имя модуля?)))

  • @ИгорьЦыганов-э3м

    Всё реально круто , но прям режет слух библиотека «мач» наверно она от математики сократилась , «мэс» наверное правильно

  • @MuniraQuvondiqova-h4g
    @MuniraQuvondiqova-h4g Рік тому

    import sys
    sys.path.append(r"d:\Programm files\python va spyder\Fayl saqlanmalar\folder\")
    import folder.Ruscha1
    import pprint
    pprint.pprint(sys.path)
    SyntaxError - показывает такую ошибку
    unterminated string literal (direkt at line 2)

  • @MrArtlex
    @MrArtlex 3 роки тому +1

    патч-матч - очень смешно)

    • @idopshik
      @idopshik 6 місяців тому

      "Уот это уотА" тоже доставляет.

  • @ney107-iz6xl
    @ney107-iz6xl Рік тому

    Стоп а main пишется если именно в этом файле который был запущен не было import просто в функции def float print есть mymodule а это ссылка на файл ex1 а там есть import или я что-то неправильно понял mymodule в print это ссылка на файл mymodule в файле ex1?
    Объясните пожалуйста

  • @valter7331
    @valter7331 2 роки тому +4

    Як же "мач" ріже вуха

  • @it-kz3mo
    @it-kz3mo Рік тому

    Не работает,не верю!

  • @普京的手机
    @普京的手机 9 місяців тому

    Что еще за ката́лог? Невозможно слушать, исправляйтесь!

  • @kurt-miller
    @kurt-miller 3 роки тому +1

    супер, но много слов паразитов - вот так вот, вот это вот, вот такой

  • @ВладимирЧ-н3и
    @ВладимирЧ-н3и 2 місяці тому

    Спасибо большое. Подробно и понятно

  • @jamjam3337
    @jamjam3337 Рік тому +2

    спасибо!👏👍

  • @ИванПатраков-е3ь

    Спасибо

  • @gayratsaidakhmedov5451
    @gayratsaidakhmedov5451 Рік тому +1

    спасибо

  • @РикСанчез-к6ъ
    @РикСанчез-к6ъ 10 місяців тому +1

    Спасибо