38 Область видимости. Локальная, глобальная и встроенная области видимости Python

Поделиться
HTML-код
  • Опубликовано: 28 ноя 2018
  • 🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
    stepik.org/course/63085/promo
    👉👉👉 Свой вопрос по курсу можешь задать в чате
    t.me/+SlnNhAO7caBlNDM6
    👉👉👉 Также подписывайся на мой телеграмм-канал
    t.me/python_egoroff
    egoroffartem.pythonanywhere.co...
    Функции - это многократно используемые фрагменты программы. При помощи функций можно объединить несколько инструкций в один блок, присвоить этому блоку имя и затем, обращаясь по имени этого блока, выполнить инструкции внутри него в любом месте программы необходимое число раз.
    Область видимости - место, где определяются переменные и где выполняется их поиск.
    Всякий раз, когда в программе используется некоторое имя, интерпретатор создает, изменяет или отыскивает это имя в пространстве имен - в области, где находятся имена.
    В Python существует встроенная, глобальная и локальная области видимости.
    Если переменная создается внутри функции, но она будет называться локальной переменной и принадлежать локальной области видимости.
    egoroffartem.pythonanywhere.co...
    На сайте будет выкладываться более подробная информация о данном курсе и будущих видео.
    Все видео этого курса можете найти на сайте
    egoroffartem.pythonanywhere.co...
    или в Вк
    videos-177962775?secti...
    Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
    artem_egoroff
    python.study
    В данном группе можете найти информацию о новых видео и задать вопросы

Комментарии • 64

  • @egoroffchannel
    @egoroffchannel  4 года назад +6

    Стать спонсором
    ruclips.net/channel/UCMcC_43zGHttf9bY-xJOTwAjoin
    Стать патроном
    www.patreon.com/artem_egorov

  • @whiteblackdog
    @whiteblackdog 2 года назад +7

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

  • @user-hy6im8cn2r
    @user-hy6im8cn2r 5 лет назад +14

    Простоооо спасибо огромное :3 Очень хорошо объясняешь) До меня просто не доходило как это работает, а тут просто разложил и все заработало!! Спасибо ещё раз

  • @neopoligraf9991
    @neopoligraf9991 4 года назад +11

    Большое спасибо за объяснение! Тема непростая, требует четкого описания...

  • @WinchesterD
    @WinchesterD 2 года назад +6

    Да, тему не плохо так раскрыл. Я раньше знал про локальную и глобальную области видимости, но вот "вложенную" и "встроенную" впервые слышу, ещё что при помощи nonlocal можно поменять функцию, находясь во вложенной функции, это конечно крутой материал!

  • @dimitrilarios2667
    @dimitrilarios2667 4 года назад +14

    Привет, Артём.
    С момента начала освоения темы ФУНКЦИИ нет практический заданий. Без них материал усваивается с меньшим КПД.

  • @user-fs9gp6oz8x
    @user-fs9gp6oz8x 4 года назад +2

    Спасибо за подробное объяснение! Тема стала теперь понятна.

  • @vika-sole
    @vika-sole Год назад +1

    Спасибо. Помогли разобраться.

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov Год назад +1

    Артём, благодарю! 🔥 👍🤝

  • @user-dr2el8ye8l
    @user-dr2el8ye8l 5 лет назад +1

    Спасибо за уроки.

  • @SRFxVideos
    @SRFxVideos 4 года назад +2

    Хороший урок, спасибо!

  • @DimbikeY
    @DimbikeY Год назад +8

    Забыл добавить, если даже переменной в global нет, но ты можешь её создать в локальной функции, написав global a. a =3. Для проверки можешь ввести в глобальной области видимости print(dir()) - увидишь новую переменную

  • @denistalko6585
    @denistalko6585 Год назад +1

    Спасибо за отличное объяснение!

  • @sofiipochta
    @sofiipochta 9 месяцев назад +1

    Спасибо, посмотрела!

  • @As-hv9fj
    @As-hv9fj 3 года назад

    Спасибо, все понятно 👍

  • @andreymex2630
    @andreymex2630 Год назад +1

    ааааа мозг закипел)

  • @efenof
    @efenof 2 года назад

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

  • @art_inkheart1688
    @art_inkheart1688 9 месяцев назад

    Спасибо большое! Ты решил мою проблему.

  • @chebupizza2842
    @chebupizza2842 4 года назад +16

    Учу питон по Byte of Python, когда непонятно ты помогаешь)

  • @user-dj7ir4or6n
    @user-dj7ir4or6n 8 месяцев назад

    огромное спасибо!!! все стало понятно

  • @user-xx3ct4cp6n
    @user-xx3ct4cp6n 4 года назад

    Thank you very much!

  • @user-gs1tn5vc1u
    @user-gs1tn5vc1u 4 года назад +7

    в 14 минутах рассказал в разы понятнее, чем препод за час.

  • @user-jg9qe4rp6m
    @user-jg9qe4rp6m 4 года назад

    Спасибо!

  • @stupidcabbage
    @stupidcabbage 2 года назад

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

  • @artemalekseevich6184
    @artemalekseevich6184 Год назад +1

    Топ!

  • @prettycode4028
    @prettycode4028 4 года назад

    хорошее уроки!

  • @user-hs6lt1bu4j
    @user-hs6lt1bu4j 11 месяцев назад

    удачи вам спасибо за разЪяснение ...

  • @user-zs4us8xe2h
    @user-zs4us8xe2h 5 лет назад

    Спасибо

  • @Elena-lv3lx
    @Elena-lv3lx 4 года назад

    спасибо!

  • @knowledgesponge8111
    @knowledgesponge8111 4 года назад

    Молодец Артём

  • @egoroffchannel
    @egoroffchannel  25 дней назад

    🫵 Теория без практики - ничто, поэтому 👇
    🐍 stepik.org/course/63085/promo
    👉 специально для тебя создал бесплатный топовый курс по Python
    👉 В нем тебя ждет:
    📗 более 400 практических заданий на программирование
    📗 более 250 тестовых заданий на проверку материала
    📗 десятки часов видеоматерилов по теории
    📗 видеоразборы решения заданий
    📗 текстовые материалы по урокам, примеры кода
    📗 доступ к закрытому чату с дружественной обстановкой
    📗 сертификат в случае успешного прохождения курса

  • @user-qi1eo3we1u
    @user-qi1eo3we1u 5 месяцев назад

    Теперь я хорошо вижу)))

  • @free_rad
    @free_rad 2 года назад +2

    Хороший урок, но я бы еще добавил про нюанс со случаем, когда в объемлющей функции используется global для использования какой-нибудь переменной из глобального пространства, то во вложенной функции уже нельзя прописать nonlocal по отношению к этой переменной. И что в объемлющей ф-ии из глобального пространства тоже нельзя писать nonlocal (для переменной из глобального пространства).

  • @jamjam3337
    @jamjam3337 Год назад +1

    👏

  • @uzbekistanmosquemaschitlar5241
    @uzbekistanmosquemaschitlar5241 5 лет назад +1

    Извините за вопрос я новичок в этой сфере и хотел бы спросить после прохождения данного курса можно ли самостоятельно создавать или что-то делать полезное и сколько надо ещё доучить чтобы можно было как минимум брать заказы на фрилансе?

    • @egoroffchannel
      @egoroffchannel  5 лет назад +2

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

    • @user-sd4bw9gh1l
      @user-sd4bw9gh1l 5 лет назад +2

      Не,так не пойдет.Без знания дополнительных библиотек ,ты ничем не отличаешься от обычного программиста на паскале или word)

    • @prettycode4028
      @prettycode4028 4 года назад +4

      для тогочто брать заказы на фрилансе надо выучить специлизацию. типа, библиотек джанго, фласка и т.д.
      я сейчас изучаю джанго, относительно легкая библиотека.
      P.S. зделай три проекта(для портфолио) и можеш начинать. ах да, и еще придетса заниматся проблемами по сейрьозному. они будут попадатса ОЧЕНЬ часто.
      поетому не бросой дело на полпути.добится сможеш.

  • @uzbekistanmosquemaschitlar5241
    @uzbekistanmosquemaschitlar5241 5 лет назад

    Будут ли ещё уроки по сложней?

    • @egoroffchannel
      @egoroffchannel  5 лет назад +1

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

  • @user-ji5nx9wh3i
    @user-ji5nx9wh3i 2 года назад

    Все-таки не совсем понятно, что nonlocal делает. Когда нет global and nonlocal переменная ищется по очереди LEGB. Когда есть global Python берет переменную из глобальной области видимости. А nonlocal как тогда? Берет в локальной области видимости для встроенной функции, так получается? Ну это же соответствует принципу LEGB, то есть берется сразу же первая область, где объявлена переменная разве нет?

  • @user-jc5px3ux4y
    @user-jc5px3ux4y 4 года назад

    def w(x):
    return x**2
    abs = w
    print(abs(-7), abs(5))
    В этом примере функция abs фактически стала переменной, в которую поместиалась функция w?

  • @inkiik
    @inkiik 4 года назад +1

    Добрый вечер, а как сделать так чтобы в функции выполнялись подряд 2 функции.
    Например:
    def v():
    print("5")
    def n():
    print("7")
    def j():
    n()
    v()
    и при вызове j() выполнились v() и n()

    • @egoroffchannel
      @egoroffchannel  4 года назад

      а чем твой пример плох?

    • @inkiik
      @inkiik 4 года назад

      @@egoroffchannel он выполняет только n() и все

    • @egoroffchannel
      @egoroffchannel  4 года назад

      должен выполнять обе

  • @obsi1019
    @obsi1019 Год назад +1

    топ

  • @mitiroro5488
    @mitiroro5488 Год назад +3

    привет из 2023

  • @rmn2682
    @rmn2682 4 года назад

    в sublime text есть встроенная область видимости?

    • @egoroffchannel
      @egoroffchannel  4 года назад +1

      Sublime это всего лишь редактор текста. Термин Область видимости относится к самой программе, а не к редактору

    • @rmn2682
      @rmn2682 4 года назад

      @@egoroffchannel список встроенный области видимости есть в
      sublime такой же как на 8:23?

    • @user-gy9eg2mn7s
      @user-gy9eg2mn7s 4 года назад

      не

  • @nesquick3408
    @nesquick3408 4 года назад

    а почему в списке, который был определен как глобальный значение А поменялось на 100, когда его поменяли в функции? по идее же, изменение переменной в функции не должно зааффектить список, который глобальный. таймкод: 07:07

    • @user-zk9vn3ko9z
      @user-zk9vn3ko9z 4 года назад +1

      видимо список в локальном и глобальном окружении имеет ссылку на один и тот же объект в памяти.

  • @user-kq1sg3sn1r
    @user-kq1sg3sn1r 4 года назад

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

    • @egoroffchannel
      @egoroffchannel  4 года назад

      на pastebin.com/ размести код и кинь ссылку на него

  • @dimitrilarios2667
    @dimitrilarios2667 4 года назад

    Прошу обратить внимание на скользкие инструкции global и nonlocal.
    Сравните два на первый взгляд одинаковых кода с инструкцией global, выводящих разные значения:
    ------------------------------------------------
    def s():
    global a
    a = 54
    print(a, 'loc')
    a = [3, 5, 2]
    s()
    print(a, 'glob')
    ВЫВОДИТ:
    54 loc
    54 glob
    ------------------------------------------------
    def s():
    global a
    a = 54
    print(a, 'loc')
    s()
    a = [3, 5, 2]
    print(a, 'glob')
    ВЫВОДИТ:
    54 loc
    [3, 5, 2] glob
    ------------------------------------------------

    • @Frehsent
      @Frehsent 3 года назад +2

      А что здесь скользкого? Во втором случае ты заново переопределил значение переменной 'a' уже после того, как ее переопределила функция

  • @Bunny_squad
    @Bunny_squad 2 года назад

    а где это полезно?

  • @user-ix6ic3vp2r
    @user-ix6ic3vp2r 3 года назад

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

  • @user-ey6dh8jz7d
    @user-ey6dh8jz7d 2 года назад

    def x(y):
    return 45
    print = x
    print('понимаю')