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

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

КОМЕНТАРІ • 88

  • @zproger
    @zproger  Рік тому +7

    Вы также можете дополнить видео своими примерами, и внести и свой вклад
    в эту тему. Заранее всем спасибо, это помогает другим людям получать информацию
    и от ваших примеров в том числе 😉

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

      @_@ у меня глаза начали крутиться в своих гнёздах, зачем так делают, чтоб так запутаться о0о в проекте?

    • @IvanIvanov-dh3sg
      @IvanIvanov-dh3sg Рік тому +1

      Ничего не знал, респект автору)

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

      Огромное спасибо, как раз у меня эта ошибка =)

  • @schmoopiegrob8758
    @schmoopiegrob8758 Рік тому +54

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

    • @zproger
      @zproger  Рік тому +7

      Фриланс и оф.работу никто не отменял =)
      Сам на фрилансе сижу параллельно с каналом

    • @IvanIvanov-dh3sg
      @IvanIvanov-dh3sg Рік тому

      @@zproger если не секрет, то скажите какие фриланс биржи норм в конце 2022года!?

    • @Владислав-т6р8х
      @Владислав-т6р8х Рік тому

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

    • @super_man-ArtOfWar3
      @super_man-ArtOfWar3 Рік тому +2

      @@zproger го видос без монтажа(без вырезания моментов) как ты будешь делать заказ на фрилансе

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

      У меня в видео очень много фейлов, если я не буду их вырезать, то придется 2 часа смотреть видео, где я пытаюсь 1 фразу нормально выговорить) У меня обычно видео на 50м, а после обрезки всех фейлов остается только 10, так что вариант такой себе :D

  • @grayich
    @grayich Рік тому +12

    О, наконец-то информация почти на весь экран, глазам хорошо стало )

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

      Это хорошо, тогда буду так делать и дальше

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

      @@zproger только трейс поменьше, не понятно что там за ошибка, все в каше

  • @TheNikita
    @TheNikita Рік тому +7

    Давно не смотрел тебя и в ютуб редко заходил. Видно, что с каждым роликом у тебя улучшается качество рассказываемой информации и многое другое, что очень круто. Удачи тебе в покорении ютуба :)

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

      Благодарю, очень приятно это слышать =)

  • @Sytyy00
    @Sytyy00 Рік тому +6

    внесу небольшую поправочку не "цикл импорта", а "циклический импорт" именно этот термин используется в литературе

  • @Cpr4z
    @Cpr4z Рік тому +6

    Очень круто, продолжай выпускать годный контент для питонистов!🎉

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

      Спасибо, буду стараться

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

    Два часа назад поймал circular import (для себя перевел как круговой импорт) из 6 сущностей. Взял бумагу, все расписал, с N-ой попытки удалось разрулить. Полтора часа убил на эту шляпу. При словах "50 модулей" стало нехорошо

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

      Да, это опасная тема)

  • @Misha-db3wi
    @Misha-db3wi Рік тому +2

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

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

      Благодарю

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

    О, відео яке я просив. Лайк авансом)

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

      Да) Спасибо =)

  • @Forvard-123
    @Forvard-123 Рік тому +4

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

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

      Да, это ужас)

  • @АндрейХлестов-к9ы

    Большое спасибо за видео. Все сразу стало понятно.

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

      Спасибо, рад что видео помогло

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

    А вот видео очень хорошее, мне зашло, спасибо!

  • @MalevichN
    @MalevichN 7 місяців тому

    Спас мой огромный проект! Спасибо)

    • @zproger
      @zproger  7 місяців тому

      Рад что смог помочь ;)

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

    Хотел уточнить насчет аннотаций типов, чтобы использовать отложенную аннотацию, насколько мне известно, нужно аннотации прописывать в кавычках.

  • @АнатолийФилатов-л4э

    Круто, будет ли у вас курс по кибер безопасности ? Учитывая как вы объясняете, рассказываете и показываете я думаю получилось бы очень круто и информативно! 👍

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

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

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

      Это да, надо проектировать заранее

  • @MrVovak85
    @MrVovak85 Рік тому +6

    В общем новичку до этих ошибок нужно еще дорасти)

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

      Возможно да =)

    • @IvanIvanov-dh3sg
      @IvanIvanov-dh3sg Рік тому +1

      Я новичек и всё что больше 2х питонов ских файлов может требовать импорта, а там и до циклов импорта недалеко

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

      я к этой ошибке пришел спустя месяц)

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

    Привет, большое тебе спасибо, ты мне помог исправить эту ошибку в игре, которую я пишу.

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

      Привет, рад что смог помочь

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

    Здравствуйте. Спасибо за видео, как всегда все на высшем уровне! Вот только подскажите, пожалуйста, вот если я напишу код, где будут описаны все функции грибка для игры, где ты типа грибок и прыгаешь по супермарио, он должен выглядеть так:
    import Grib0k
    или так:
    from Grib0k import *
    ??
    Спасибо!

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

      Так нельзя, будет циклический импорт грибка

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

    Логичная ошибка, допустить её мало шансов.

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

    Запиши пожалуйста видео про то, как правильно изучать (читать документацию) к разным библиотекам.

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

      Возможно статью напишу в телеграмм канал, так как вряд ли многим это будет интересно =)

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

      @@zproger спасибо

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

    лайк от СЕООНЛИ

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

      Благодарю

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

    Заманался с циклами импорта в схемах пайдантика, раскиданных по разрым файлам

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

    8:35 Да 🌚

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

    Добрый день. Я вроде программист, но не слышал про "pentagon", это просто название для примера, или это должно быть во всех проектах?

    • @winter-lb7id
      @winter-lb7id 9 місяців тому

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

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

    а какое de ты используешь на основном дистрибутиве?

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

      Не знаю, это ZorinOS, и тут его нельзя выбрать)

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

      @@zproger да я не про zorinOS, а основной дистрибутив, вроде бы говорил что ползуешься виртуалкой

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

      На основе Gnome, но хочу на dwm перейти когда будет желание себе нервишки испортить

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

    Получается тот же курс, что на степике, только добавляется телега и обновления?

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

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

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

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

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

      Тоже не встречался ни разу, кроме ошибки с переопределением модуля, но это все равно нужно знать, а то мало ли

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

      @@zproger Я из C++ и ассемблера, но даже там не встречался

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

    Цикл импорта очень мешает использовать тайп-хинтинги

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

    Ладно если одни модули импортируют функции из других, но зачем импортировать функции друг из друга? Является ли такое перекрестное импортирование хорошей практикой написания кода?

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

      Не является, это и ведет к циклическому импорту

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

    кстати говоря, подскажите, пожалуйста, а вы вообще планируете сравнивать языки низкого уровня и этот ваш петон??! было бы очень интересно!!!

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

      Возможно =)

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

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

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

      Ок

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

      Через pyinstaller

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

      Чел сидит и угарает над автором 😂 отправляя больше 5 сообщении и коверкая название питона

  • @АлиханАбдыллабеков

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

  • @ВладБобров-г5э
    @ВладБобров-г5э Рік тому

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

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

    В проекте папка 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 говорится в видео тоже =)

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

    Что у тебя за редактор кода

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

    512-ый лайк. 😈

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

      Благодарю =)))

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

    Что у тебя за дистрибутив?