Python is an amazing language.
However, many intermediate Python developers aren’t achieving their full potential with the language because of features and concepts they don't know, or that they partly know but find confusing because their understanding isn't quite right. This video tutorial will help you by:
- Clarifying exactly how names work. Names are one of features of Python most often poorly understood, especially for developers who think in terms of variables as containers for values.
- Explaining namespaces and going into detail on all the language features that change them from assignment and del to function and class definitions. You’ll then learn potentially confusing aspects of Python that, once you correctly understand names and namespaces, are no longer confusing.
- Demonstrating several powerful features in Python that are often lacking in other language, such as generators and first class objects, in order to help you imagine more Pythonic solutions to problems.
- The details of object creation and naming
- Namespace changing features including assignment, del, import, function definition, class definition, and decorators
- Disassembling CPython bytecode to understand some Python features
- Iterables, iterators, and the iterator protocol
- How to use generators to make your code easier to read and understand
- Monkey patching classes, creating classes dynamically, and how bound methods work
- Using special methods in classes
- Several ways other than classes to bind data with functions
- Python 3 features such as tuple assignment with extended iterable unpacking and keyword-only function arguments
Stuart Williams has been teaching Python for over a decade to audiences as diverse as adults in industry and at PyCon, students in university, high school students at a week-long Python summer camp, and grade school students learning Raspberry Pi.
He holds a B.Sc. degree in Physics and Math/Computer Science, and a M.Sc. in Computer Science and Engineering from the University of Washington.
He works in the financial services industry with Python in domains ranging from batch systems, to software architecture, to helping quantitative analysts. He also teaches Python and coaches development teams at startups.