Over time, Python has exploded in popularity, from being an obscure scripting language to becoming one of the most popular, and widely used languages in the world. In this course, Advanced Python, you'll learn advanced topics, a knowledge of which will set you apart from the greater number of Python developers. First, you'll explore how to gain fine-grained control over attribute access. Next, you'll discover how to intercept class-object construction. Finally, you'll learn the subtle, but powerful, controls Python gives you over class relationships. By the end of this course, you'll know enough Python to understand the advanced techniques used to implement sophisticated frameworks and much more.
Robert Smallshire is a founding director of Sixty North, a software product and consulting business in based in Norway. He has held several senior software architecture and technical management roles, and he is a regular conference speaker. Python is his weapon of choice.
Course Overview Hi everyone. My name is Robert Smallshire. Welcome to our course, Advanced Python. I'm a principle consultant at Sixty North, and out of the dozen or so programming languages I can choose to use, Python is the one I return to again and again to produce low friction solutions quickly and efficiently. I've been working regularly with Python since the turn of the millennium, using it to solve problems across a wide range of business, scientific, and engineering sectors ranging from simulating geological processes in planet Earth through to monitoring and controlling electricity consumption in industrial plants over the web. Over that time Python has exploded in popularity from being an obscure scripting language to becoming one of the most popular and widely used language in the world. The growing demand for Python skills reflects it's broad adoption in the diverse realms of web development, data science, cloud operations, and as an embedded scripting language in professional applications. This course is the culmination of our series on the core Python language. We'll cover advanced topics, a knowledge of which will set you apart from the greater number of Python developers. Topics, such as descriptors, we'll learn how to gain fine grain control over attribute access, metaclasses, where you'll see how to intercept class object construction, and virtual subclasses, where you'll discover the subtle but powerful controls Python gives you over class relationships. By the end of this course you'll know enough Python to understand the advanced techniques used to implement sophisticated frameworks, like SQLAlchemy or Django, and be able to bring those capabilities to bear in your own solutions. Before beginning this course you should be familiar with the material we cover in our Python Fundamentals and Python Beyond the Basics courses here on Pluralsight. I hope you'll join me on this journey to expand your core Python 3 language skills with the advanced Python course at Pluralsight.
Byte-oriented Programming Hello. My name is Robert Smallshire. Welcome to the second module of the Advanced Python course. In this module we'll be going low level to look at byte-oriented programming in Python. At the bottom everything is bits and bytes and sometimes it's necessary to work at this level, particularly when you're dealing with binary or non-text data from other sources. Remember that in Python 3, although not in Python 2, there is a very clear separation between texts, which is stored in the Unicode capable str type and raw bytes, which are stored in the aptly named bytes type. Specifically in this module, we are going to review the bitwise operators, look at the binary representation of integers, fill in some additional details about the bytes type, introduce the bytearray type, look at packing and unpacking binary data with the struct module from the Python standard library, look at memoryview objects, and show how to use memory-mapped files.
Object Internals and Custom Attributes Hello. My name is Robert Smallshire. Welcome to the third module of the Advanced Python course. In this module we'll provide details of how objects are represented internally in Python as a dictionary called dunder dict, and show how objects can be directly queried and manipulated through this internal dictionary. We'll then use this knowledge to show how to implement custom attribute access by overriding the special dunder getattr, dunder getattribute, dunder setattr, and dunder delattr methods. We'll round off by seeing how to make objects more memory efficient by defining dunder slots.