Python 3: Beyond the Basics
Python – Beyond the Basics deepens and broadens your knowledge of Python, a dynamic language popular for web development, big data, science, and scripting.
What you'll learn
Python – Beyond the Basics builds directly on the foundations laid in our introductory Python course, Python Fundamentals. Python is a great dynamic language for:
- Web development
- Big data
- Science
- Scripting
On completing this course, you'll be familiar with the majority of Python techniques and constructs used in Python programs. Crucially, we'll also advise you on when – and when not – to use the different tools available in Python to best effect, to maximize the quality of your code, your productivity, and the joy inherent in coding in Python.
Table of contents
- Local Functions 5m
- Returning Functions From Functions 1m
- Closures and Nested Scopes 2m
- Function Factories 2m
- The Nonlocal Keyword 6m
- Function Decorators 2m
- A First Decorator Example 3m
- What Can Be a Decorator? 2m
- Instances as Decorators 2m
- Multiple Decorators 2m
- Decorating Methods 1m
- functools.wraps() 4m
- Duck Tails: Validating Arguments 2m
- Summary 3m
- Reviewing int and float 6m
- The Decimal Module and the Decimal Type 11m
- Rational Numbers with the Fraction Type 3m
- The Complex Type and the cmath Module 6m
- Built-In Numeric Functions abs() and round() 3m
- Number Base Conversions 2m
- The datetime Module and date Type 5m
- The time Type 2m
- The datetime Type 4m
- Durations with the timedelta Type 1m
- Arithmetic with datetime 1m
- Time Zones 3m
- Duck Tail: Floating Point vs. Rational Numbers 13m
- Summary 4m
- Multi-Input Comprehensions 4m
- Nested Comprehensions 2m
- The map() Function 3m
- Multiple Input Sequences 2m
- map() Versus Comprehensions 1m
- The filter() Function 2m
- The functools.reduce() Function 3m
- Combining map() and reduce() 2m
- The Iteration Protocols 2m
- Putting the Protocols Together 1m
- Alternative Iterable Protocol 1m
- Extended iter() Format 2m
- Duck Tail: Iterator for Streamed Sensor Data 2m
- Summary 4m
- Inheritance Overview 4m
- A Realistic Example: SortedList 2m
- The Built-In isinstance() Function 3m
- The Built-In issubclass() Function 1m
- Multiple Inheritance 3m
- Details of Multiple Inheritance 1m
- Method Resolution Order 4m
- How Is Method Resolution Order Calculated? 2m
- The Built-In super() Function 2m
- Class-Bound Super Proxies 3m
- Instance-Bound Super Proxies 2m
- Calling super() Without Arguments 1m
- SortedIntList Explained 2m
- The Object Class 2m
- Duck Tail: Inheritance for Implementation Sharing 1m
- Summary 5m
- Collection Protocol Overview 1m
- Collection Construction 5m
- The Container Protocol 2m
- The Sized Protocol 2m
- The Iterable Protocol 3m
- The Sequence Protocol: Indexing 3m
- The Sequence Protocol: Slicing 3m
- Comprehensible Test Results With __repr__() 2m
- Implementing Equality and Inequality 5m
- The Sequence Protocol: Reversing 1m
- The Sequence Protocol: index() 2m
- The Sequence Protocol: count() 1m
- Improving Performance from O(N) to O(log n) 4m
- Refactoring to Avoid Don't Repeat Yourself (DRY) 2m
- Checking Protocol Implementations 3m
- The Sequence Protocol: Concatenation and Repetition 4m
- The Set Protocol 6m
- Duck Tail: Making a Mutable Set 1m
- Summary 3m
- Always Specify an Exception Type 4m
- The Standard Exception Hierarchy 5m
- Exception Payloads 4m
- Defining New Exceptions 3m
- Chaining Exceptions 4m
- Traceback Objects 3m
- Assertions: Internal Invariants 4m
- Assertions: Class Invariants 1m
- Assertions: Performance 2m
- Duck Tail: Preconditions and Postconditions 6m
- Summary 2m
- What Is a Context Manager? 3m
- The Context Manager Protocol 2m
- A First Context Manager Example 3m
- __enter__() 1m
- __exit__() 2m
- __exit__() and Exception Propagation 2m
- The with-statement Expansion 1m
- contextlib.contextmanager 5m
- Multiple Context Managers 3m
- Don't Pass a List! 1m
- Duck Tail: Context Managers for Transactions 3m
- Summary 4m
Course FAQ
We will dive into packages, extended call syntax, Lambdas, closures and decorators, properties and class methods, numeric and scalar types, inheritance and subtype polymorphism, introspection, and much more.
You should walk away from this intermediate Python course being familiar with the majority of Python techniques and concepts used in Python programs. You should have the tools necessary to write the best quality Python code.
Total duration of the course is almost 7.5 hours, but it should take a bit longer than that if you are following with a more hands on approach, writing and executing code as you follow along, experimenting, testing, troubleshooting, and so forth. You should take all the time you need in order to grasp the concepts being presented.
Yes. This course should be taken after you already have an understanding of Python basics, as it builds upon the fundamentals, and assumes you already have some experience with Python. If you still need to learn the basics, or just need a refresher, check out our Python Fundamentals course.