Мои курсы: Boosty: boosty.to/omol... Patreon: / karty-vsekh-41011404 Что такое пространство имен и что такое область видимости. В чем разница. Зачем нужно Серия уроков по основам Python
Пікірлер: 69
@lck52175 жыл бұрын
циклы и условия не создают неймспейс
@zaemiel5 жыл бұрын
вы правы. Нужно было об этом сказать.
@ИванИванов-н9т9ъ5 жыл бұрын
Здесь точно новички собрались?
@sergeizub90485 жыл бұрын
@@ИванИванов-н9т9ъ Да уж, как то наш "гуру" резко зарулил...
@arcsin40834 жыл бұрын
важное уточнение, спасибо!
@15bleach514 жыл бұрын
@@zaemiel добавьте текстовую вставку поверх видео
@databox427910 ай бұрын
Олег объясняет как боженька. В связке с GPT чатом, который не устает отвечать на вопросы, это что-то не реальное. Огромная Вам благодарность за ваши труды.
@rushmaster_9 ай бұрын
Спасибо за идею - тоже попробую)
@fle4er48874 жыл бұрын
Спасибо Олег. У тебя преподавательский талант. Без пафоса и все грамотно с деталями.
@hlwn1723 жыл бұрын
Охрененные уроки чтобы пройтись по базе! Олегу Спасибо!
@aleksprimetv5 жыл бұрын
Олег просто красавчик, все без спешки и подробно, продолжай в том же духе! А хейтеров бань.
@zaemiel5 жыл бұрын
Спасибо
@АлексейБыстревский-ы6ь3 жыл бұрын
А мне в 2х смотреть призодится)
@Python_in_UA2 жыл бұрын
И получите очередного Путина и войну со всем миром.... Обратная связь всегда нужнее уверенности в собственной правоте
@elenalevasheva3830 Жыл бұрын
Вот, как все оказывается ... Супер много узнала. Спасибо за урок
@rafmio2 жыл бұрын
Олег, конечно, жарит, в 6 утра записывает видосы )
@leomysky4 жыл бұрын
Отличные уроки, всё просто супер
@alexfish2894 жыл бұрын
4:59 - что такое пространство имен. scope 9:09 - область видимости.
@picha_titan4 жыл бұрын
Я конечно новичок (не газ), но кажется что в Пайтона это удобно реализовано, и делает его хорошим средством программирования. Такое мощное средство. Круто.
@J1mDGriz2 жыл бұрын
Спасибо за видос Вы объяснили в этом и уроке №6 то, что очень долго не мог понять и 2 преподавателя по каким-то причинам так и не смогли до меня донести нужную информацию. В процессе обучения Python перешёл на IDE PyCharm. В этой IDE постоянно получал ошибку-предупреждение "shadows name 'x' from outer scope" и никак не мог понять, что это и как от неё избавиться. только сейчас всё это понял понял ещё, что вовсе не обязательно аргументы функции должны совпадать с именами внешних переменных Короче, респект!
@АлександрРюмин-п5ы3 жыл бұрын
Добрый день, Олег! Спасибо за урок! Я как раз экспериментирую с областями видимости и обнаружил проблему, природу которой не могу понять Имеется модуль Choice, содержащий ряд функций (функции перезаписывают Chosen_Case, для чего импортируют другие модули). В глобальной области видимости есть словарь Chosen_Case, на элементах которого построен интерфейс приложения и словарь ALL_N, содержащий названия модулей, к которым можно обратиться из модуля Choice. В сильно урезанном виде это выглядит примерно так: Chosen_Case = {‘Text’:’Welcome!’} ALL_N = {‘a’:’A’, ‘b’:’B’} def extractor(self, *args): from Choice import value as S global Chosen_Case Chosen_Case = S() self.Case_Text.text = Chosen_Case['Text'] # выводит текст в соответствующую Label for key, value in ALL_N.items(): btn_n = Button(text=key) btn_n.bind(on_press=self.extractor) При запуске приложения цикл for благополучно создает кнопки с именами из словаря ALL_N, но при нажатии на такую кнопку возникает ошибка: в модуле Choice нет элемента value. Пробовал объявить global value и non-local value и даже прописывать value в качестве аргумента функции extractor. Увы, интерпретатор твердит, что такого элемента в модуле Choice нет. Я не понимаю, почему на этапе вызова функции value перестает быть ссылкой на значение в словаре ALL_N и становится самостоятельным именем, которое интерпретатор пытается найти в модуле Choice
@ГригорийСитёв4 жыл бұрын
Ты настолько понятно объясняешь, что даже мой мопс всё понял ))
@Вагулик-и4е3 жыл бұрын
Очень все понятно,спасибо!
@hekNt4 жыл бұрын
Один момент оказался непонятен. 12:57. Когда мы запускаем код все просто name в locals() и name получили одно и тоже значение "Pupkin". Так и должно быть 13:10. name получило значение из enctype "in a()" и... name в locals() получило тоже значение! Пространство имен шагнуло следом за name по области видимости? 13:50. Самое интересное. С name все понятно "Eroha". Но что же случилось с locals()? Оно передумало идти по пространству имен за name или ее сдерживает какой-то механизм? Или что-то еще? Почему словарь оказался пустой? Автор обговаривает, что происходит с переменной и областью видимости, но не говорит об этом выборочном поведении пространства имен. Момент с исключением вполне понятнен
@ata.ibragimoff4 жыл бұрын
Нашёл объяснение?
@ebawer38924 жыл бұрын
Все кто задался таким же вопросом. Погуглите про замыкания в python
@ИванИванов-н9т9ъ5 жыл бұрын
Ещё бы желательно было бы про служебное слово 'global' рассказать, ведь иногда нужно не только увидеть значение переменной глобального уровня, но и изменить его из функции. За объяснение спасибо, помогло упорядочить знания по теме.
@zaemiel5 жыл бұрын
для этого лучше использовать словари на глобальном уровне. Поэтому не стал про global говорить.
@ИванИванов-н9т9ъ5 жыл бұрын
@@zaemiel Признаюсь, не в курсе, о чем речь.
@zaemiel5 жыл бұрын
просто создаете глобальный словарь с нужными ключами и значениями. Затем, когда нужно - изменяете этот словарь. Это же изменяемый тип - очень удобно.
@ИванИванов-н9т9ъ5 жыл бұрын
@@zaemiel Проверил, действительно работает! Спасибо Вам.
@АйдарШарипов-р7е4 жыл бұрын
@@zaemiel Нужно создать словарь просто в глобальной области видимости или используя служебное слово global?
@Gleb_Pastushenko3 жыл бұрын
4:35 думаю это не совсем удачный пример. Тут важнее другая причина, по которой переменная name не была изменена - потому что не была вызвана функция, соответственно не отработали операторы в теле функции, а при определении функции её тело не исполняется.
@АвэН-ь4ы4 жыл бұрын
Отлично , сразу подписался и поставил лайк ))))
@liferesearcher56483 жыл бұрын
А как вынести переменную из локальной видимости, из функции?
@dimabonds98504 жыл бұрын
Спасибо
@DJ-lp6jr5 жыл бұрын
4:40 Ну и еще не поменялось потому, что [ даже если бы в функции было global name, то ] самого вызова функции не было.
@strimexify4 жыл бұрын
Отсутствие фигурных скобок и жесткое регулирование отступов, конечно, сбивают с толку. Очено сложно после языков типа С++ и С#. Точек с запятой тоже нет, это мешает, как будто есть какая-то незавершенность, как будто что-то делал и недоделал, и бросил. Но зато успокаивает хороший звук, грамотная речь и отличная подача материала.
@iBarBQ3 жыл бұрын
Может кто то подсказать, как в Visual studio Code так же быстро как Олег закомментировать сразу несколько строк?
@masterjack_3 жыл бұрын
Комбинация клавиш: Ctrl + K затем Ctrl + C. Раскомментировать: Ctrl + K затем Ctrl + U
@iBarBQ3 жыл бұрын
@@masterjack_ спасибо!
@dmitryleiko28695 жыл бұрын
Лайк однозначно :)
@pythondeveloper63155 жыл бұрын
Если нужна помощ пишите)
@sergeizub90485 жыл бұрын
Вот от тебя помоЩ точно не нужна ))))
@pythondeveloper63155 жыл бұрын
@@sergeizub9048 Обидно...
@sergeizub90485 жыл бұрын
@Alejandro Rodriguez Автор просто крайне непоследовательно подаёт информацию. Locals - это вызов локальных данных из "словарей" в Phyton, о которых он только заикнулся, но толком не объяснял. Поэтому Вы ничего и не поняли, уважаемый. А автору дизлайк за отвратительную подачу!
@pythondeveloper63155 жыл бұрын
@Alejandro Rodriguez Доброго вечера. Функцию locals () обычно используют в функциях, чтобы получить список переменных заданных в теле функции, и их значения. Например def a (): print (locals ()) выведет {} a вот это def a (): variable1 = 1 variable2 = 2 print(locals()) a () выведет { "variable1": 1, "variable2": 2} Надеюсь понятно объяснил
@aleksprimetv5 жыл бұрын
@@sergeizub9048 ты вообще хоть правильно напиши название языка, прежде чем автора видео критиковать!
@vladvulcan3 жыл бұрын
элементарно же... где задал переменную, там она и находится
@oxygensss43904 жыл бұрын
4:05 забыл запустить функцию
@alexanderpadalka57083 жыл бұрын
✔
@TheVellymo5 жыл бұрын
А я же правильно понимаю, что одной области видимости соответствует только одно пространство имен?
@zaemiel5 жыл бұрын
нет. Пространство имен - это словарь. Область видимости - это цепочка пространств имен, в котором Python ищет определение имен.
@yvictor21034 жыл бұрын
+
@sergeizub90485 жыл бұрын
По ходу автор ролика на последних его минутах только сам понимает, о чём говорит... Если ты так объясняешь, чувак, перестань заливать видосы!
@aleksprimetv5 жыл бұрын
Потеряйся чувак отсюда, если ты тупой как валенок, то тебе никто не поможет!
@zaemiel5 жыл бұрын
почему вы сделали такой вывод? Я что-то неправильно говорю?
@alextype14 жыл бұрын
@@zaemiel не слушай спыцыалистафф . Хорошие уроки, по крайней мере для таких людей как я, только начинающих в это дело вникать.