Как избавиться от циклов импорта в Python

  Рет қаралды 29,641

ZProger [ IT ]

ZProger [ IT ]

Күн бұрын

⭐ Курс ООП и Приват канал: www.zproger-school.com/?...
⭐ Телеграм канал: t.me/+273f9L65EFIxMzgx
В данном видео рассмотрим циклический импорт в Python, который мешает вашей программе сделать нормальную инициализацию модуля.
В видео есть множество примеров с ошибками, которые могут разрушить ваш проект, и также на каждую ошибку приводится её решение.
📁 Github: github.com/Zproger
📁 Все плейлисты с уроками: bit.ly/39GaY89
📁 Связаться со мной: zproger777@gmail.com
📁 Поддержать канал: github.com/Zproger/donate
0:00 - Как работает цикл импорта в Python?
1:33 - Чем опасен цикл импорта?
1:58 - Почему происходит цикл импорта в Python?
3:15 - Важная новость. Обновление курса ООП + Приват канал
5:09 - Как исправить цикл импорта? Первый способ
6:13 - Второй способ избавиться от цикла импорта
6:37 - Почему нельзя делать from module import *
7:08 - Ошибка которая убьет ваши нервы
8:23 - Цикл импорта в пакетах, который убьет ваш проект
9:45 - Как решить цикл импорта в пакетах?
10:08 - Пример с подвохом, который вы не сможете решить =)
10:58 - Цикл импорта в аннотациях (type hinting python)
11:47 - Как исправить ошибку цикла в type hinting?
12:10 - Почему это работает по-разному на разных версиях Python?

Пікірлер: 86
@zproger
@zproger Жыл бұрын
Вы также можете дополнить видео своими примерами, и внести и свой вклад в эту тему. Заранее всем спасибо, это помогает другим людям получать информацию и от ваших примеров в том числе 😉
@mikaelgevorgyan4521
@mikaelgevorgyan4521 Жыл бұрын
@_@ у меня глаза начали крутиться в своих гнёздах, зачем так делают, чтоб так запутаться о0о в проекте?
@IvanIvanov-dh3sg
@IvanIvanov-dh3sg Жыл бұрын
Ничего не знал, респект автору)
@Mr_AnKei
@Mr_AnKei Жыл бұрын
Огромное спасибо, как раз у меня эта ошибка =)
@schmoopiegrob8758
@schmoopiegrob8758 Жыл бұрын
Вот так смотришь, учишься, и начинаешь подозревать, что в итоге придётся зарабатывать только продажей курсов по питону
@zproger
@zproger Жыл бұрын
Фриланс и оф.работу никто не отменял =) Сам на фрилансе сижу параллельно с каналом
@IvanIvanov-dh3sg
@IvanIvanov-dh3sg Жыл бұрын
@@zproger если не секрет, то скажите какие фриланс биржи норм в конце 2022года!?
@user-ho8qs1hb3u
@user-ho8qs1hb3u Жыл бұрын
Если знаешь только Python, то да. Для заработка нормальных денег нужно знания языка программирования соединять с чем-то еще.
@super_man-ArtOfWar3
@super_man-ArtOfWar3 Жыл бұрын
@@zproger го видос без монтажа(без вырезания моментов) как ты будешь делать заказ на фрилансе
@zproger
@zproger Жыл бұрын
У меня в видео очень много фейлов, если я не буду их вырезать, то придется 2 часа смотреть видео, где я пытаюсь 1 фразу нормально выговорить) У меня обычно видео на 50м, а после обрезки всех фейлов остается только 10, так что вариант такой себе :D
@TheNikita
@TheNikita Жыл бұрын
Давно не смотрел тебя и в ютуб редко заходил. Видно, что с каждым роликом у тебя улучшается качество рассказываемой информации и многое другое, что очень круто. Удачи тебе в покорении ютуба :)
@zproger
@zproger Жыл бұрын
Благодарю, очень приятно это слышать =)
@grayich
@grayich Жыл бұрын
О, наконец-то информация почти на весь экран, глазам хорошо стало )
@zproger
@zproger Жыл бұрын
Это хорошо, тогда буду так делать и дальше
@shadr1n
@shadr1n Жыл бұрын
@@zproger только трейс поменьше, не понятно что там за ошибка, все в каше
@Cpr4z
@Cpr4z Жыл бұрын
Очень круто, продолжай выпускать годный контент для питонистов!🎉
@zproger
@zproger Жыл бұрын
Спасибо, буду стараться
@ybw____
@ybw____ Жыл бұрын
О, відео яке я просив. Лайк авансом)
@zproger
@zproger Жыл бұрын
Да) Спасибо =)
@user-sm8io8il2m
@user-sm8io8il2m Жыл бұрын
Большое спасибо за видео. Все сразу стало понятно.
@zproger
@zproger Жыл бұрын
Спасибо, рад что видео помогло
@flueriexeflueriexe7040
@flueriexeflueriexe7040 Жыл бұрын
А вот видео очень хорошее, мне зашло, спасибо!
@zproger
@zproger Жыл бұрын
=))))
@MalevichN
@MalevichN 4 ай бұрын
Спас мой огромный проект! Спасибо)
@zproger
@zproger 4 ай бұрын
Рад что смог помочь ;)
@flueriexeflueriexe7040
@flueriexeflueriexe7040 Жыл бұрын
Здравствуйте. Спасибо за видео, как всегда все на высшем уровне! Вот только подскажите, пожалуйста, вот если я напишу код, где будут описаны все функции грибка для игры, где ты типа грибок и прыгаешь по супермарио, он должен выглядеть так: import Grib0k или так: from Grib0k import * ?? Спасибо!
@zproger
@zproger Жыл бұрын
Так нельзя, будет циклический импорт грибка
@user-kc3fv9gj3u
@user-kc3fv9gj3u Жыл бұрын
Круто, будет ли у вас курс по кибер безопасности ? Учитывая как вы объясняете, рассказываете и показываете я думаю получилось бы очень круто и информативно! 👍
@Forvard-123
@Forvard-123 Жыл бұрын
Недавно столкнулся с этим, ужас хорошо что на гит заливаю все обновления пришлось откатиться ибо голова взрывалась уже
@zproger
@zproger Жыл бұрын
Да, это ужас)
@Sytyy00
@Sytyy00 Жыл бұрын
внесу небольшую поправочку не "цикл импорта", а "циклический импорт" именно этот термин используется в литературе
@zproger
@zproger Жыл бұрын
Спасибо
@xpeawey
@xpeawey Жыл бұрын
Добрый день. Я вроде программист, но не слышал про "pentagon", это просто название для примера, или это должно быть во всех проектах?
@winter-lb7id
@winter-lb7id 7 ай бұрын
Да, обязательный пакет. Каждый уважающий себя программист должен импортировать пентагон в свой проект
@solomr2013
@solomr2013 Жыл бұрын
а какое de ты используешь на основном дистрибутиве?
@zproger
@zproger Жыл бұрын
Не знаю, это ZorinOS, и тут его нельзя выбрать)
@solomr2013
@solomr2013 Жыл бұрын
@@zproger да я не про zorinOS, а основной дистрибутив, вроде бы говорил что ползуешься виртуалкой
@zproger
@zproger Жыл бұрын
На основе Gnome, но хочу на dwm перейти когда будет желание себе нервишки испортить
@VLADrusLV55
@VLADrusLV55 Жыл бұрын
Вот только сегодня столкнулся с такой проблемой, когда пакет компоновал, вообще структуре пакета нужно больше времени уделять, а не классы тягать из одного метода в другой, как это обычно и происходит
@zproger
@zproger Жыл бұрын
Это да, надо проектировать заранее
@shakopee6053
@shakopee6053 Жыл бұрын
Что у тебя за редактор кода
@dmitrykoklyagin2916
@dmitrykoklyagin2916 Жыл бұрын
Два часа назад поймал circular import (для себя перевел как круговой импорт) из 6 сущностей. Взял бумагу, все расписал, с N-ой попытки удалось разрулить. Полтора часа убил на эту шляпу. При словах "50 модулей" стало нехорошо
@zproger
@zproger Жыл бұрын
Да, это опасная тема)
@Misha-db3wi
@Misha-db3wi Жыл бұрын
Видео полезное, но сумбурное... Впрочем, как и ситуация в которой возникает эта ошибка Я только сейчас заметил, что канал развивающийся) Не знаю есть ли аналоги, но я рад такой находке
@zproger
@zproger Жыл бұрын
Благодарю
@aleksandr7043
@aleksandr7043 Жыл бұрын
Получается тот же курс, что на степике, только добавляется телега и обновления?
@zproger
@zproger Жыл бұрын
Добавляется приват канал, поддержка, обновления, чат и все боты которых буду делать для приват канала. На степике по сути уже нет поддержки и там только курс, а по новой ссылке будут все глобальные обновления
@litosfer3358
@litosfer3358 Жыл бұрын
Привет, большое тебе спасибо, ты мне помог исправить эту ошибку в игре, которую я пишу.
@zproger
@zproger Жыл бұрын
Привет, рад что смог помочь
@seoonlyRU
@seoonlyRU Жыл бұрын
лайк от СЕООНЛИ
@zproger
@zproger Жыл бұрын
Благодарю
@MrVovak85
@MrVovak85 Жыл бұрын
В общем новичку до этих ошибок нужно еще дорасти)
@zproger
@zproger Жыл бұрын
Возможно да =)
@IvanIvanov-dh3sg
@IvanIvanov-dh3sg Жыл бұрын
Я новичек и всё что больше 2х питонов ских файлов может требовать импорта, а там и до циклов импорта недалеко
@v0rtex87
@v0rtex87 Жыл бұрын
я к этой ошибке пришел спустя месяц)
@MsRestartround
@MsRestartround Жыл бұрын
Запиши пожалуйста видео про то, как правильно изучать (читать документацию) к разным библиотекам.
@zproger
@zproger Жыл бұрын
Возможно статью напишу в телеграмм канал, так как вряд ли многим это будет интересно =)
@MsRestartround
@MsRestartround Жыл бұрын
@@zproger спасибо
@AlexandrSpirit
@AlexandrSpirit Жыл бұрын
Заманался с циклами импорта в схемах пайдантика, раскиданных по разрым файлам
@zproger
@zproger Жыл бұрын
:D
@user-xq2ko4jr6b
@user-xq2ko4jr6b Жыл бұрын
А расскажи пожалуйста как написать код для управления роботами
@zproger
@zproger Жыл бұрын
Роботами?
@blackcatdevel0per
@blackcatdevel0per Жыл бұрын
8:35 Да 🌚
@AlexandrSpirit
@AlexandrSpirit Жыл бұрын
В проекте папка schemas и файлы с классами пайдантика беда начиналась если в классе order нужно наследовать класс prod, а в prod наследовать order и т.п. Решилось используя ```from __future__ import annotations``` И возможности библиотеки typing ``` from typing import TYPE_CHECKING if TYPE_CHECKING: ``` Только тогда классы приходится указывать как строки, в ковычках "MessageDB" Импорт некоторых модулей не вначале а в конце файла Плюс .update_forward_refs() Может и есть более простое решение. Но не нашел
@AlexandrSpirit
@AlexandrSpirit Жыл бұрын
А еще есть библиотека SQLmodel. Там без этого не обойтись
@zproger
@zproger Жыл бұрын
О TYPE_CHECKING говорится в видео тоже =)
@flueriexeflueriexe7040
@flueriexeflueriexe7040 Жыл бұрын
а сделайте видео, пожалуйста, как вот можно скомпилировать код пэйтхона, пожалуйста, мне вот очень интересно
@zproger
@zproger Жыл бұрын
Ок
@dowlso
@dowlso Жыл бұрын
Через pyinstaller
@nseed8894
@nseed8894 Жыл бұрын
Чел сидит и угарает над автором 😂 отправляя больше 5 сообщении и коверкая название питона
@TeslaDln
@TeslaDln Жыл бұрын
Ладно если одни модули импортируют функции из других, но зачем импортировать функции друг из друга? Является ли такое перекрестное импортирование хорошей практикой написания кода?
@zproger
@zproger Жыл бұрын
Не является, это и ведет к циклическому импорту
@fedorivanov8420
@fedorivanov8420 11 ай бұрын
Цикл импорта очень мешает использовать тайп-хинтинги
@user-kk2ni4hl1q
@user-kk2ni4hl1q Жыл бұрын
Ни*хуя не понял, но было ощущение что на этих вещах моя попка будет гореть. Добавлю это видео в избранное, что бы когда столкнусь с этой ошибкой пересмотреть его и опять ничего не понять.
@flueriexeflueriexe7040
@flueriexeflueriexe7040 Жыл бұрын
кстати говоря, подскажите, пожалуйста, а вы вообще планируете сравнивать языки низкого уровня и этот ваш петон??! было бы очень интересно!!!
@zproger
@zproger Жыл бұрын
Возможно =)
@agentsmit09
@agentsmit09 Жыл бұрын
Я с таким не встречался ну ни где. Если такая ошибка появляется, то это говорит только об ошибке проектирования. При таком примере будет ругаться любой язык и не только Python.
@zproger
@zproger Жыл бұрын
Тоже не встречался ни разу, кроме ошибки с переопределением модуля, но это все равно нужно знать, а то мало ли
@agentsmit09
@agentsmit09 Жыл бұрын
@@zproger Я из C++ и ассемблера, но даже там не встречался
@return_1101
@return_1101 Жыл бұрын
512-ый лайк. 😈
@zproger
@zproger Жыл бұрын
Благодарю =)))
@infarni7222
@infarni7222 Жыл бұрын
Что у тебя за дистрибутив?
@zproger
@zproger Жыл бұрын
Zorin OS
ТОП 5 Ошибок в написании функций Python
12:46
БОЛЬШОЙ ПЕТУШОК #shorts
00:21
Паша Осадчий
Рет қаралды 9 МЛН
Always be more smart #shorts
00:32
Jin and Hattie
Рет қаралды 47 МЛН
Happy 4th of July 😂
00:12
Pink Shirt Girl
Рет қаралды 44 МЛН
Python + PyQt5 + PostgreSQL (часть 1)
25:25
Перлины: Владислав и Елена
Рет қаралды 14 М.
Ruff в Python: Этот инструмент изменит все
10:21
БОЛЬШОЙ ПЕТУШОК #shorts
00:21
Паша Осадчий
Рет қаралды 9 МЛН