When you enroll through our links, we may earn a small commission—at no extra cost to you. This helps keep our platform free and inspires us to add more value.

Udemy logo

Python 3: Deep Dive (Part 2 - Iterators, Generators)

Sequences, Iterables, Iterators, Generators, Context Managers

     
  • 4.9
  •  |
  • Reviews ( 3K )
₹569
Python 3: Deep Dive (Part 2 - Iterators, Generators)

    This Course Includes

    • iconudemy
    • icon4.9 (3K reviews )
    • icon36h 9m
    • iconenglish
    • iconOnline - Self Paced
    • iconprofessional certificate
    • iconUdemy

    About Python 3: Deep Dive (Part 2 - Iterators, Generators)

    Part 2 of this Python 3: Deep Dive series is an in-depth look at:

    sequences

    iterables

    iterators

    generators

    comprehensions

    context managers I will show you exactly how iteration works in Python - from the

    sequence

    protocol, to the

    iterable

    and

    iterator

    protocols, and how we can write our own sequence and iterable data types. We'll go into some detail to explain sequence

    slicing

    and how slicing relates to ranges. We look at

    comprehensions

    in detail as well and I will show you how list comprehensions are actually

    closures

    and have their own scope, and the reason why subtle bugs sometimes creep in to list comprehensions that we might not expect. We'll take a deep dive into the

    itertools

    module and look at all the functions available there and how useful (but overlooked!) they can be. We also look at

    generator functions

    , their relation to iterators, and their comprehension counterparts (

    generator expressions

    ).

    Context managers

    , an often overlooked construct in Python, is covered in detail too. There we will learn how to create and leverage our own context managers and understand the relationship between context managers and generator functions. Each section is followed by a project designed to put into practice what you learn throughout the course. This course series is focused on the Python language and the standard library. There is an enormous amount of functionality and things to understand in just the standard CPython distribution, so I do not cover 3rd party libraries - this is a Python deep dive, not an exploration of the many highly useful 3rd party libraries that have grown around Python - those are often sufficiently large to warrant an entire course unto themselves! Indeed, many of them already do!

    Prerequisites

    Please note that this is a relatively advanced Python course, and a strong knowledge of some topics in Python is required. In particular you should already have an

    in-depth

    understanding of the following topics:

    functions and function arguments

    packing and unpacking iterables and how that is used with function arguments (i.e. using

    )

    closures

    decorators

    Boolean truth values and how any object has an associated truth value

    named tuples

    the zip, map, filter, sorted, reduce functions

    lambdas

    importing modules and packages You should also have a

    basic

    knowledge of the following topics:

    various data types (numeric, string, lists, tuples, dictionaries, sets, etc)

    for loops, while loops, break, continue, the else clause

    if statements

    try...except...else...finally...

    basic knowledge of how to create and use classes (methods, properties) - no need for advanced topics such as inheritance or meta classes

    understand how certain special methods are used in classes (such as __init__, __eq__, __lt__, etc)

    What You Will Learn?

    • You'll be able to leverage the concepts in this course to take your Python programming skills to the next level. .
    • Sequence Types and the sequence protocol .
    • Iterables and the iterable protocol .
    • Iterators and the iterator protocol .
    • List comprehensions and their relation to closures .
    • Generator functions .
    • Generator expressions .
    • Context managers .
    • Creating context managers using generator functions .
    • Using Generators as Coroutines.