Интересное видео! Формат, когда преподаватель разбирается вместе с учеником добавляет жизни в материал! Давненько разбирался с итераторами и генераторами, освежил память, спасибо 😊
Раз уж видео про генераторы, то было бы неплохо осветить порядок работы yield и его отличия от return, в частности, что внутреннее состояние генератора как бы "замораживается" на моменте, когда встретился yield и продолжается с этого места в следующей итерации, а не с начала кода генератора. Хорошо это видно если запускать код генератора, у которого есть операторы после yield в пошаговом дебаге.
Привет. Могу. Сделаю видео. А если совсем коротко, используя async, мы запускаем функцию в потоке, т. е. не останавливаем скрипт в ожидании, пока данная функция выполнится, чтобы перейти к выполнению следующих написанных команд, а начинаем выполнять данную функцию и продолжаем выполнять скрипт дальше. Когда функция async выполнится, код результат выполнения отловит, если она возвращает его. Главная идея, что мы не блокируем процесс, пока функция не будет выполнена, а спокойно выполняем код дальше, а async функция как - «бы ковыряется» со своими расчетами параллельно выполнению другого кода. Единственное это не параллельно, а в собственном потоке. Это двумя предложениями не объяснить.
ну да итого какое-то непонятное: генератор это функция, а итератор это класс. Если прям вырвать фразу из контекста то создается представление что next это генератор внутри итератора, но ведь это же не так? и где связь генератора с итератором на практике? почему мы сначала рассмотрели генератор? я правда посмотрел и не понял. не понимаю эту тему и ролик к сожалению не помог) НО всё равно огромное спасибо большое за старания и труды)
Итератор считай , что это обертка над итерируемым объектом, организующая курсор с пошаговым проходом двумя способами, или через for loop, тогда бежим пока не будет остановка, или посредством next, по одному элементу. Оба метода можем миксовать по желанию. Генератор, это функция, генерирующая последовательность элементов, согласно написанной логике внутри функции генератора. Генератор выдает итератор генератора. Т.е мы имеем дело с итератором, который мы представляем как курсор. В итоге итератор ничего не генерит, только позволяет вытаскивать элементы, а генератор именно генерит за шаг, один элемент. А вот для доступа к ним, нужен итератор, считай курсор.
и next это метод для итератор. В случае с итератором, метод next, вернет элемент из текущего расположения курсора и переместит курсор на след. элемент. В случае с генератором, тоже самое, так как для перемещения по сгенерированным элементам, используется итератор.
@@PythonGuru_ "Генератор, это функция, генерирующая последовательность элементов, согласно написанной логике внутри функции генератора." но в вашем примере итератора Iter вы же генерируете(рассчитываете по фукнции что будет в next) но это итератор а не генератор. Вроде на словах что-то есть но на практике непонятно. Пока из ответа (спасибо за ответ) я понял что итератор просто возвращает след. значение а генератор его "генерирует" но это же одно и тоже разве нет? я про текущие примеры из видео
итератор ничего не генерит, он скажем так, организует курсор над итерируемым обьектом, а генератор генерит итерируемый обьект, не сохраняя его, только выдает за 1 шаг, следующий элемент, забывая его на следующем шаге. А итератор помогает генератору выдавать сгенерированный объект. Грубо говоря так
Еще раз, генератор, от глагола генерить, создавать…создает последовательность. В чем преимущество, если можно расписать логику создания требуемой по задаче последовательности, то мы можем создавать ее посредством генератора, не держа ее в памяти, сохраняя память свободной. iter, ничего не создает. Если мы применяем этот метод над существующим итерируемрм обьектом, мы никак не влияем на этот обьект, мы создаем курсор, который помогает нам отслеживать, какие элементы были уже задействованы/взяты/вытащены…но сам обьект, как был в памяти, так и остался. next всего лишь перемещает курсор, как палец в книге в роли указки. А генерато, нам генерит слово за словом, забывая пердыдущее слово, как получили новое
Интересное видео! Формат, когда преподаватель разбирается вместе с учеником добавляет жизни в материал! Давненько разбирался с итераторами и генераторами, освежил память, спасибо 😊
👌
Спасибо за твои видео !
1. Они очень информативны и без лишней воды
2. Высокое качество материала и его подачи
❤❤❤
Приятно слышать. Пожалуйста
Желаю развития каналу! Контент действительно крутой
спасибо
Ой, какое клёвое видео! Спасибо огромное, всё очень понятно💛
пользуйтесь )
Спасибо за ваши уроки!
👌
Чел, ты крут! благодаря тебе все понял
👍
Отличное объяснение!
спасибо
Раз уж видео про генераторы, то было бы неплохо осветить порядок работы yield и его отличия от return, в частности, что внутреннее состояние генератора как бы "замораживается" на моменте, когда встретился yield и продолжается с этого места в следующей итерации, а не с начала кода генератора. Хорошо это видно если запускать код генератора, у которого есть операторы после yield в пошаговом дебаге.
забыл это явно указать. Много всего было что сказать, и затерялось эта информация. Хотя много раз говорил, что генератор это хранит.
спасибо за видео ❤
😊
👌
@@PythonGuru_ наконец я понял 🤣🐍💕
Делай мало, но качественно, пожалуйста
что в этом плохо?
Могли бы вы рассказать про отличия async def от def? В чем заключаются отличия в работе, что лучше использовать и где применять.
Привет. Могу. Сделаю видео. А если совсем коротко, используя async, мы запускаем функцию в потоке, т. е. не останавливаем скрипт в ожидании, пока данная функция выполнится, чтобы перейти к выполнению следующих написанных команд, а начинаем выполнять данную функцию и продолжаем выполнять скрипт дальше. Когда функция async выполнится, код результат выполнения отловит, если она возвращает его. Главная идея, что мы не блокируем процесс, пока функция не будет выполнена, а спокойно выполняем код дальше, а async функция как - «бы ковыряется» со своими расчетами параллельно выполнению другого кода. Единственное это не параллельно, а в собственном потоке. Это двумя предложениями не объяснить.
@@PythonGuru_ Здорово, буду ждать ролик.
видео о программировании в 4к! МОЕ ПОЧТЕНИЕ!
Привет) как давно вы изучаете python? И еще, знаете ли вы какой либо другой язык??
Привет. Больше 3 лет наверно.
php, JavaScript, HTML, CSS, MS SQL, postgre, MySQL, Laravel, Codeigniter (php frameforks), React, Vue (js frameworks), React Native (js frameworks для мобильных app).
ну да итого какое-то непонятное: генератор это функция, а итератор это класс. Если прям вырвать фразу из контекста то создается представление что next это генератор внутри итератора, но ведь это же не так? и где связь генератора с итератором на практике? почему мы сначала рассмотрели генератор? я правда посмотрел и не понял. не понимаю эту тему и ролик к сожалению не помог) НО всё равно огромное спасибо большое за старания и труды)
Итератор считай , что это обертка над итерируемым объектом, организующая курсор с пошаговым проходом двумя способами, или через for loop, тогда бежим пока не будет остановка, или посредством next, по одному элементу. Оба метода можем миксовать по желанию.
Генератор, это функция, генерирующая последовательность элементов, согласно написанной логике внутри функции генератора. Генератор выдает итератор генератора. Т.е мы имеем дело с итератором, который мы представляем как курсор. В итоге итератор ничего не генерит, только позволяет вытаскивать элементы, а генератор именно генерит за шаг, один элемент. А вот для доступа к ним, нужен итератор, считай курсор.
и next это метод для итератор. В случае с итератором, метод next, вернет элемент из текущего расположения курсора и переместит курсор на след. элемент. В случае с генератором, тоже самое, так как для перемещения по сгенерированным элементам, используется итератор.
@@PythonGuru_ "Генератор, это функция, генерирующая последовательность элементов, согласно написанной логике внутри функции генератора." но в вашем примере итератора Iter вы же генерируете(рассчитываете по фукнции что будет в next) но это итератор а не генератор. Вроде на словах что-то есть но на практике непонятно. Пока из ответа (спасибо за ответ) я понял что итератор просто возвращает след. значение а генератор его "генерирует" но это же одно и тоже разве нет? я про текущие примеры из видео
итератор ничего не генерит, он скажем так, организует курсор над итерируемым обьектом, а генератор генерит итерируемый обьект, не сохраняя его, только выдает за 1 шаг, следующий элемент, забывая его на следующем шаге. А итератор помогает генератору выдавать сгенерированный объект. Грубо говоря так
Еще раз, генератор, от глагола генерить, создавать…создает последовательность. В чем преимущество, если можно расписать логику создания требуемой по задаче последовательности, то мы можем создавать ее посредством генератора, не держа ее в памяти, сохраняя память свободной. iter, ничего не создает. Если мы применяем этот метод над существующим итерируемрм обьектом, мы никак не влияем на этот обьект, мы создаем курсор, который помогает нам отслеживать, какие элементы были уже задействованы/взяты/вытащены…но сам обьект, как был в памяти, так и остался. next всего лишь перемещает курсор, как палец в книге в роли указки. А генерато, нам генерит слово за словом, забывая пердыдущее слово, как получили новое
За-ши-бись! Я пошёл за пивом))))
🍺 это отлично
подскажите please, у меня ни в ps code ни в pycharm нет такого вывода в терминале как тут в уроке, мне нужно что то доустановить? заранее спасибо
поддержка jupiter notebook. Если у вас pycharm, тут посмотрите www.jetbrains.com/help/pycharm/jupyter-notebook-support.html