class
is a useful object that is essentially a variable type (Python object) that you can define yourself.class
extends this concept in several ways, most obviously a class
can contain both variables (properties) and functions (methods).class
will embody some object and the data + functions that make sense to bundle together. Let's see some very simple syntax examples before moving on to the scripts directory where more complete examples are given.
In [7]:
# Define a class with the class keyword
class A:
"""Docstrings work here too"""
x = 5 # defining properties of the class
y = 7
print(A)
print(A.x, A.y) # Access properties with `.` as with other Python objects
A.x = 1 # Can change the class properties from outside the definition
print(A.x, A.y)
class
and one set of values for properties.
In [3]:
class B:
x = 3 # Evaluated once during the definition (similar to functions)
y = [] # These will be initially the same for all instances
def __init__(self, z):
"""This function is special. It's run when the instance of the class is created and
is useful to set up some initial state of the class. The argument 'self' isn't a
keyword but is the convention, it is basically the instance being passed into the
class."""
self.z = z # Can be different for each instance
def z_squared(self):
return self.z**2
# Instances are created in a similar way to functions and use the arguments from the
# __init__ function if it exists.
f = B(3) # Note there is only the z argument because the 'self' is automatically passed in
g = B(4)
print(f.x, g.x) # Same values
B.x = 5
print(f.x, g.x) # Both changed
print(f.y, g.y) # Same values
B.y.append("Hello")
print(f.y, g.y) # Both changed
print(f.z_squared(), g.z_squared()) # Call class methods in a usual way
# The `self` argument becomes more obvious when you realise that these are
# equivalent statements
print(f.z_squared(), B.z_squared(f))
print(g.z_squared(), B.z_squared(g))
class
features and some awesome Python examples using the Python standard library and some of its extensive third party libraries for scientists.