#48. Импорт собственных модулей | Python для начинающих
HTML-код
- Опубликовано: 27 сен 2024
- Обучающий курс: stepik.org/cou...
Узнаете, как создавать и импортировать свои собственные модули в программах на языке Python. Коллекция sys.path. Перекрестный импорт. Обновление модуля с помощью функции reload() библиотеки importlib.
Telegram-канал: t.me/python_se...
Наконееееец то я понял этот пресловутый __name__ == __main__ . Я столько материала пересмотрел и все в один голос: что бы сделать модуль запускаемым пропишите это фрагмент кода.... Всё!! на этом объяснение у всех почему то заканчивается!!! Откуда этот __name__? зачем проводить условие сравнения с __main__? ощущение как будто эти псевдоПреподователи зазубрили и крепко держат у себя в уме(просто напишу этот фрагмент кода и всё по идее будет работать, а моей аудитории скажу что этот фрагмент делает модуль запускаемым🤯🤯🤯🤯). Спасибо тебе Сергей! Жаль я столько времени, усилий и денег потратил на прочие ресурсы обучения. Твои способности доносить до слущающего просто великолепны! Я сдерживался все это время чтобы оценить тебя как знающего свое дело как преподаватель (ну учит в целом не плохо, получше остальных, но с каждым разом убеждался(вот же очередной внятный ответ на мои вопросы) все больше и больше, и этот загадочный __name__==__main__ стал МЕГАочевидным для меня, чего раньше я никак не мог впустить себе в голову и откладывал на неопределенное время!!)
Отдельное спасибо, что делаете уроки с удобным масштабом для смартфонов. Очень помогает
СПАСИБО! я наконец-то поняла зачем нужна конструкция со сравнением __name__ и __main__ :)
Чем больше смотрю курс,тем больше он мне нравится
УРА! НАконец-то мне нормально объяснили про __main__ )) СПасибо
+1
спасибо за разъяснения про path. Невероятно понятные и грамотные уроки
Я и не думал, что создание и импорт своих модулей так прост )
Спасибо!
@selfedu, Вас уже возможно поправляли на эту тему, но я на всякий случай сделаю замечание:
'MATH' на английском читается как 'МАТ', либо, как учат питерских блогеров, 'МАФ'. A 'MAЧ' у современных учащихся вызывает любые ассоциации, но только не связанные с математикой.
то же самое относительно слова 'PATH' и ему подобным
непосредственно по теме урока вопросов нет. доходчиво, как всегда!
Однозначно в самые первые закладки по Python. Пол дня лопатил какой то кал в интернете. Толком ни кто объяснить не может. У вас всё как всегда по полочкам и в одном месте. Огромное спасибо!
Очень печально, что у хороших видео-обучалок питону мало просмотров.
Сергей, шикарное объяснение. Спасибо!
Просто супер про импорты, хто самая темная тема в питоне )
Тут всё вроде понятно, но с другой стороны немного запутанно и придётся проходить ещё не один раз, всё равно респект!
Спасибо. Лучше, чем я ожидал )
Круто, наконец то я понял зачем нужен main =name., Спасибо за объяснение!
очень полезно и поучительно, спасибо
Спасибо за абсолютный импорт
Спасибо за урок. Разберите пожалуйста, как импортировать функцию из модуля, если головной проект лежит в Папке №1 -> Модуль X, а нужная функция в Папке № 2 -> Модуль Y ? Папки друг в друга не вложены. И правильно ли будет засунуть эти папки (каталоги) в пакет и через __init__ импортировать нужную функцию?
Спасибо
Спасибо, но никогда не привыкну к match и patch)
КАТАЛОГ, ФОЛДЕР, ДИРЕКТОРИЯ - это просто синонимы к привычному слову ПАПКА, которые употребляются в зависимости от контекста.
это на случай, если кого-то испугали или запутали незнакомые слова.
Спасибо за урок!
Но сколько бы я не импортировал свои модули, то они работают, но нет отображения тех функций, что я импортировал. После точки он не предлагает мне возможные имена из импортированного модуля... кеш обновлял и всё ровно..
А как можно так-же, делать 3 модуля как у вас, на телефоне?
Legend
math читается - месс а не мач но всьо равно уроки крутые не смотря на то что пайтон требует время
Спасибо за урок! Один вопрос: как импортировать модуль из другого проекта? Я и в path писал путь к папке проекта, но не помогло.
Всё реально круто , но прям режет слух библиотека «мач» наверно она от математики сократилась , «мэс» наверное правильно
*Здравствуйте будет ли уроки по парсингу сайтов*
👍
Циклический импорт, __all__, поведение с подчеркивания - не раскрыто.
Спасибо за хороший курс. Однако на будущее советую английские слова поизносить правильно. Math читает, как мас. Не путать с популярным словом match - мaтч
path - пас (путь). не путать с patch - заплпата, также часто используемое в программировании слово
Не кАталог, а каталОг. Или тогда уж просто папка
Чел, тебе не пофигу ли? Вы на такие мелочи обращаете внимание, когда автор даёт кладезь полезной инфы. Походу у меня есть кумир преподавания. Спасибо Автору!
Як же "мач" ріже вуха
будет ли продолжения курса на Stepik&
пока незнаю, непросто это )
@@selfedu_rus я понимаю , но все же надеюсь что вы сможете (
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)
А как питон определяет рабочий каталог?
у него есть предустановленные пути поиска библиотек + тот каталог, что определен текущим проектом в PyCharm (обычно, это каталог запускаемого файла)
@@selfedu_rus спасибо. То есть это сама среда PyCharm настраивает? А если я через обычный редактор запускаю? Можно как то вручную это сделать?
@@Повар-ф8в да, прописать путь в коллекции sys.path
в Visual Studio Code не получается запустить функцию в другом окне, может кто то объяснить как это сделать?
Просто качаешь пайчарм и все
патч-матч - очень смешно)
"Уот это уотА" тоже доставляет.
так как задавать имя модуля?)))
это имя файла
спасибо
жаль нельзя лайк несколько раз поставить, респект за такие уроки
Я правильно понимаю, что добавленный через sys.path.append модуль будет доступен только в текущей сессии?
не пробовал, скорее всего, т.к. sys обнулится потом
То есть если в 2х фалах вызывающих друг друга, если будет import и importlib.reload , то в таком случае они уже будут вызывать друг друга до бесконечности?
Ха, не пробовал ) Думаю, при reload будет перегружаться только текущий модуль, но не связанные с ним, но нужно проверять!
Проверил, бесконечного цикла нет, но оно как то очень странно работает, странная последовательность выполнения действий.
Но я не особо шарю в этом всем, поэтому хз почему так.
Если в 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
---------------------------------
@@selfedu_rus , а вот будет круто, если найдёте объяснение тому поведению, что продемонстрировал @Юра Радионов
Спасибо тебе Добрый Человек!!!!!
Так как преподаватель не всегда знает где у новичка возникнет вопрос задам ег я пока я ещё новичёк ))))
В видео на ruclips.net/video/hWsBYrASuqU/видео.html времени есть выражение
- ПОВТОРНО ИМПОРТИРОВАТЬ.....
ВОПРОС :
Зачем это нужно, для чего нужно и так далее.
В курсе степика нет объяснения для чего это нужно, в каких случаях используется, нет примера из жизниб что-бы не просто запомнить информацию ( напомню я новичек- чайник) а ПОНЯТЬ в чем смысл такого метода как повторный запуск import если он уже прописан в начале файла..... (((((
А в чем разница 'текущий каталог' и 'рабочий каталог'. Текущий каталог это тот в котором выполняется программа. Но в примере рабочий не является текущим он просто внешний.
Спасибо! Очень крутой урок.
Рабочий каталог устанавливается окружением, в данном случае PyCharm, это тот каталог, относительно которого определяются другие каталоги, если используются относительные пути. А текущий - это тот, в котором находится модуль (файл py).
@@selfedu_rus Так и подумал сперва, спасибо !
Стоп а main пишется если именно в этом файле который был запущен не было import просто в функции def float print есть mymodule а это ссылка на файл ex1 а там есть import или я что-то неправильно понял mymodule в print это ссылка на файл mymodule в файле ex1?
Объясните пожалуйста
очень круто про импорт собственных модулей, отличный и познавательный урок!
👍👍👍👍👍
просто огоромнейшее спасибо, все очень доступно обьясняете
спасибо
Спасибо
Автоматом выставил from folder import mymodule
спасибо!👏👍
ты красава. просто классные объяснения
А что такое рабочий каталог, как Python определяет это?
Спасибо за уроки. Было бы хорошо показать разбиение на модули в программе с ООП.
Спасибо ! Многое для себя уяснил!
Спасибо!!!
Не работает,не верю!
Здравствуйте, вы берете заказы? Как можно с вами связаться. Мне нужно лабу по нейронным сетям сделать
Вот, специально написал: ruclips.net/user/postUgybNtp2jm5lG5sdUS54AaABCQ
Спасибо, очень лаконично и по делу 💪
А что делать в ситуации, когда, например, написал свой модуль, в котором использовал импорт функции, пусть будет синус из math. При импорте этого своего модуля все равно повляется возможность импортировать не только "свои" функции, но и этот злосчастный синус. Как его скрыть от глаз пользователя? Ну этот синус совсем не к месту будет в IDE выпрыгивать в подсказках при обращении к модулю. А если для написания своих функций в модуле использовал кучу сторонних пакетов, то вообще получается не очень - образаешься к модулю, а там сборная солянка из своих функций, и функций из других пакетов...
Внутренние ф-ии следует начинать с _. Лучше делать from math import sin as _sin, и использовать внутри кода в таком виде (_sin). Тогда этот _sin должен игнорироваться IDE.
Что еще за ката́лог? Невозможно слушать, исправляйтесь!
супер, но много слов паразитов - вот так вот, вот это вот, вот такой