Python Cheat Sheet: Classes
“A puzzle a day to learn, code, and play” → Visit finxter.com
Description Example
Classes A class encapsulates data and functionality: data as class Dog:
attributes, and functionality as methods. It is a blueprint """ Blueprint of a dog """
for creating concrete instances in memory.
# class variable shared by all instances
species = ["canis lupus"]
def __init__(self, name, color):
self.name = name
self.state = "sleeping"
self.color = color
def command(self, x):
if x == self.name:
self.bark(2)
elif x == "sit":
Instance You are an instance of the class human. An instance is a self.state = " sit"
concrete implementation of a class: all attributes of an else:
instance have a fixed value. Your hair is blond, brown, or self.state = " wag tail"
black--but never unspecified.
def bark(self, freq):
Each instance has its own attributes independent of for i in range(freq):
other instances. Yet, class variables are different. These print("[" + self.name
are data values associated with the class, not the + "]: Woof!")
instances. Hence, all instance share the same class
variable species in the example.
black")
bello = Dog("bello", "
Self The first argument when defining any method is always alice = Dog("alice", " white")
the self argument. This argument specifies the
black
print(bello.color) #
instance on which you call the method.
print(alice.color) # white
self gives the Python interpreter the information about
the concrete instance. To define a method, you use s elf bello.bark(1) # [bello]: Woof!
n instance
to modify the instance attributes. But to call a
method, you do not need to specify self. alice.command("sit")
print("[alice]: " + alice.state)
Creation You can create classes “on the fly” and use them as # [alice]: sit
logical units to store complex data types.
bello.command("no")
class Employee(): print("[bello]: " + bello.state)
pass # [bello]: wag tail
employee = Employee()
employee.salary = 122000 alice.command("alice")
employee.firstname = "alice" # [alice]: Woof!
employee.lastname = "wonderland" # [alice]: Woof!
print(employee.firstname + " " bello.species += ["wulf"]
+ employee.lastname + " " print(len(bello.species)
+ str(employee.salary) + "$") == len(alice.species)) # True (!)
# alice wonderland 122000$