A class definition defines a class object (see section
classdef: "class" classname [inheritance] ":" suite inheritance: "(" [expression_list] ")" classname: identifier
A class definition is an executable statement. It first evaluates the
inheritance list, if present. Each item in the inheritance list
should evaluate to a class object. The class's suite is then executed
in a new execution frame (see section
Programmer's note: variables defined in the class definition are class variables; they are shared by all instances. To define instance variables, they must be given a value in the the __init__() method or in another method. Both class and instance variables are accessible through the notation ```codeself.name'', and an instance variable hides a class variable with the same name when accessed in this way. Class variables with immutable values can be used as defaults for instance variables.