Classes¶
Let’s return to the type()
function for a moment. It returns the data type
for the argument inside the parentheses, and we can print this information to
the console.
The code below prints the data types for several different values.
1 2 3 4 5 | #!/bin/python3
print(type(12))
print(type("Hello, World!"))
print(type(['dog', 'cat', 'fish', 3.14]))
|
<class 'int'>
<class 'str'>
<class 'list'>
Note how each data type gets reported after the word class
.
As we saw before, objects have both properties and methods. All string values (objects) share a set of properties and methods, while list objects hold a different set. When two objects share a set of properties and methods, we say they belong to the same class.
Classes allow us to organize the same type of data into the same group. For
example, all whole numbers are part of the int
class, and any data enclosed
in quote marks belongs to the str
class.
Every object belongs to a particular class, and this determines what the object
can do. The list ['dog', 'cat', 'fish']
CANNOT use any of the methods defined for
the str
class, but it CAN use all of the available list
methods.
Python defines many classes for us and makes them available for our use. In
each of the previous chapters, we’ve studied some of the ready-made
classes, like int
, str
, float
, bool
, list
, and dict
.
Objects Have a Data Type¶
When we introduce a new value in our code, Python automatically identifies its data type and groups it into a class.
Example
1 2 3 | i_can_code = True
print(type(i_can_code))
|
Console Output
<class 'bool'>
Every value has a data type, and each data type belongs to a class.
Python treats every data value as an object.
Since Python treats every value as an object, all objects have a data type, and all objects belong to a class.
On the previous page, we used the dog
object. It contains both int
and
str
properties (age
and name
), and it uses methods that don’t
belong with any other data type. How should Python group it?
User Defined Classes¶
Recall that Python gives us plenty of ready-made functions to help us code,
like print()
, max()
, and sum()
. We can also import more functions
from modules like we did with the string module.
However, these functions cannot do all the jobs we need. Our real
strength as programmers comes when we define our own functions. We can think
about classes in a similar way.
Sometimes, none of the given Python classes work for what we need to do. On the
previous page, the idea was to use an object that behaved differently from
strings, lists, etc. dog
introduced a new data type, but Python does NOT
come with a pre-defined class for dog
.
Just like creating our own functions, Python allows us to define our own
custom classes. For the examples on the previous page, we defined a new
class and gave it the properties and methods it needed to describe the dog
object.
On the next few pages, we will explore how to define a new class, create objects from it, and learn why we want to do this.