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

🔥🔥🔥 Инди-курс по 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
    @egoroffchannel4 жыл бұрын

    Стать спонсором kzread.info/dron/McC_43zGHttf9bY-xJOTwA.htmljoin Стать патроном www.patreon.com/artem_egorov

  • @whiteblackdog
    @whiteblackdog2 жыл бұрын

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

  • @user-hy6im8cn2r
    @user-hy6im8cn2r5 жыл бұрын

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

  • @neopoligraf9991
    @neopoligraf99914 жыл бұрын

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

  • @WinchesterD
    @WinchesterD2 жыл бұрын

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

  • @user-fs9gp6oz8x
    @user-fs9gp6oz8x4 жыл бұрын

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

  • @vika-sole
    @vika-sole Жыл бұрын

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

  • @user-dr2el8ye8l
    @user-dr2el8ye8l5 жыл бұрын

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

  • @dimitrilarios2667
    @dimitrilarios26674 жыл бұрын

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

  • @denistalko6585
    @denistalko65852 жыл бұрын

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

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov Жыл бұрын

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

  • @SRFxVideos
    @SRFxVideos4 жыл бұрын

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

  • @DimbikeY
    @DimbikeY Жыл бұрын

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

  • @sofiipochta
    @sofiipochta10 ай бұрын

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

  • @As-hv9fj
    @As-hv9fj3 жыл бұрын

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

  • @efenof
    @efenof2 жыл бұрын

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

  • @art_inkheart1688
    @art_inkheart168810 ай бұрын

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

  • @user-dj7ir4or6n
    @user-dj7ir4or6n9 ай бұрын

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

  • @user-xx3ct4cp6n
    @user-xx3ct4cp6n4 жыл бұрын

    Thank you very much!

  • @prettycode4028
    @prettycode40285 жыл бұрын

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

  • @andreymex2630
    @andreymex2630 Жыл бұрын

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

  • @stupidcabbage
    @stupidcabbage2 жыл бұрын

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

  • @user-jg9qe4rp6m
    @user-jg9qe4rp6m4 жыл бұрын

    Спасибо!

  • @chebupizza2842
    @chebupizza28425 жыл бұрын

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

  • @godmovement9264

    @godmovement9264

    4 жыл бұрын

    жиза жизненная

  • @user-hs6lt1bu4j
    @user-hs6lt1bu4j Жыл бұрын

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

  • @knowledgesponge8111
    @knowledgesponge81114 жыл бұрын

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

  • @artemalekseevich6184
    @artemalekseevich6184 Жыл бұрын

    Топ!

  • @user-zs4us8xe2h
    @user-zs4us8xe2h5 жыл бұрын

    Спасибо

  • @Elena-lv3lx
    @Elena-lv3lx4 жыл бұрын

    спасибо!

  • @free_rad
    @free_rad2 жыл бұрын

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

  • @user-gs1tn5vc1u
    @user-gs1tn5vc1u5 жыл бұрын

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

  • @user-qi1eo3we1u
    @user-qi1eo3we1u6 ай бұрын

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

  • @jamjam3337
    @jamjam3337 Жыл бұрын

    👏

  • @uzbekistanmosquemaschitlar5241
    @uzbekistanmosquemaschitlar52415 жыл бұрын

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

  • @egoroffchannel

    @egoroffchannel

    5 жыл бұрын

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

  • @user-sd4bw9gh1l

    @user-sd4bw9gh1l

    5 жыл бұрын

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

  • @prettycode4028

    @prettycode4028

    5 жыл бұрын

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

  • @egoroffchannel
    @egoroffchannel2 ай бұрын

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

  • @user-jc5px3ux4y
    @user-jc5px3ux4y4 жыл бұрын

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

  • @user-wk9dl9lu2t

    @user-wk9dl9lu2t

    2 жыл бұрын

    так и есть

  • @uzbekistanmosquemaschitlar5241
    @uzbekistanmosquemaschitlar52415 жыл бұрын

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

  • @egoroffchannel

    @egoroffchannel

    5 жыл бұрын

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

  • @inkiik
    @inkiik4 жыл бұрын

    Добрый вечер, а как сделать так чтобы в функции выполнялись подряд 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 жыл бұрын

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

  • @user-ji5nx9wh3i
    @user-ji5nx9wh3i2 жыл бұрын

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

  • @rmn2682
    @rmn26824 жыл бұрын

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

  • @egoroffchannel

    @egoroffchannel

    4 жыл бұрын

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

  • @rmn2682

    @rmn2682

    4 жыл бұрын

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

  • @user-gy9eg2mn7s

    @user-gy9eg2mn7s

    4 жыл бұрын

    не

  • @nesquick3408
    @nesquick34084 жыл бұрын

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

  • @user-zk9vn3ko9z

    @user-zk9vn3ko9z

    4 жыл бұрын

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

  • @obsi1019
    @obsi1019 Жыл бұрын

    топ

  • @user-kq1sg3sn1r
    @user-kq1sg3sn1r4 жыл бұрын

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

  • @egoroffchannel

    @egoroffchannel

    4 жыл бұрын

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

  • @dimitrilarios2667
    @dimitrilarios26674 жыл бұрын

    Прошу обратить внимание на скользкие инструкции 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 жыл бұрын

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

  • @Bunny_squad
    @Bunny_squad2 жыл бұрын

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

  • @user-ix6ic3vp2r
    @user-ix6ic3vp2r3 жыл бұрын

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

  • @user-ey6dh8jz7d
    @user-ey6dh8jz7d2 жыл бұрын

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

  • @mitiroro5488
    @mitiroro5488 Жыл бұрын

    привет из 2023

Келесі