Book Image

Python Fundamentals

By : Ryan Marvin, Mark Nganga, Amos Omondi
Book Image

Python Fundamentals

By: Ryan Marvin, Mark Nganga, Amos Omondi

Overview of this book

After a brief history of Python and key differences between Python 2 and Python 3, you'll understand how Python has been used in applications such as YouTube and Google App Engine. As you work with the language, you'll learn about control statements, delve into controlling program flow and gradually work on more structured programs via functions. As you settle into the Python ecosystem, you'll learn about data structures and study ways to correctly store and represent information. By working through specific examples, you'll learn how Python implements object-oriented programming (OOP) concepts of abstraction, encapsulation of data, inheritance, and polymorphism. You'll be given an overview of how imports, modules, and packages work in Python, how you can handle errors to prevent apps from crashing, as well as file manipulation. By the end of this book, you'll have built up an impressive portfolio of projects and armed yourself with the skills you need to tackle Python projects in the real world.
Table of Contents (12 chapters)
Python Fundamentals
Preface

Class Versus Instance Attributes


In the previous section, we had an introduction to classes and attributes. The attributes we've seen defined up until this point are instance attributes. This means that they are bound to a specific instance. Initializing an object with specific attributes applies/binds those attributes to only that object, but not to any other object initialized from that class.

Exercise 37: Declaring a Class with Instance Attributes

In this exercise, we'll declare a WebBrowser class that has the attributes for history, the current page, and a flag that shows whether it's incognito or not. It can be initialized with a page.

Note

The attributes that we will declare inside the constructor will be added as instance attributes The binding of the attributes to the instance happens in the __init__ method, where we add attributes to self.

  1. Define the WebBrowser class as follows:

    class WebBrowser:
        def __init__(self, page):
            self.history = [page]
            self.current_page = page...