Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to call a class in Python

## Understanding Classes in Python

Think of a class in Python as a blueprint for creating objects. Objects are instances of a class. For instance, if you had a class called 'Car,' you could create an object of that class and call it 'my_car.' 

This is similar to the real world. For instance, 'Car' is a concept, and 'my_car' is a specific instance of that concept. A 'Car' has some properties like color, model, brand etc. Similarly, a Python class can have properties and functions.

```python
class Car:
  color = "red"
  brand = "Toyota"

my_car = Car()
print(my_car.color) # prints: red
print(my_car.brand) # prints: Toyota

How to Define a Class

In Python, a class is defined using the class keyword. The properties of the class are defined in the body of the class. The syntax is very straightforward. You just need to write class, then the name of the class with a colon at the end. The name of the class is usually written in CamelCase, meaning the first letter of each word is capitalized.

class MyClass:
  x = 5

In the example above, MyClass has a property x which has a value of 5.

How to Call a Class

To use a class, you need to create an object of that class. This is called instantiation. It's like making a specific 'Car' from the 'Car' blueprint. You can do this by calling the class name followed by parentheses.

p1 = MyClass()
print(p1.x) # prints: 5

In the example above, p1 is an instance (or object) of MyClass. You can access the properties of the class using the dot . operator.

What's Inside a Class: Methods

The real power of classes comes from methods. Methods are functions that are defined inside a class. They allow the objects of the class to perform actions.

Let's go back to the 'Car' example. A 'Car' can do things, like start, stop, accelerate, etc. These actions can be represented by methods in Python class.

class Car:
  def start(self):
    print("Car started!")

my_car = Car()
my_car.start() # prints: Car started!

In the example above, start is a method of the Car class. To define a method, you use the def keyword, similar to defining a function. The self parameter is a reference to the current instance of the class and is used to access variables that belong to the class.

Class Initializer: The init Method

There is a special method called __init__ which you can define in your class. This method is automatically called when an object of the class is instantiated. It's usually used to set the initial state of the object.

Let's see how we can use __init__ method to set the color and brand of the 'Car'.

class Car:
  def __init__(self, color, brand):
    self.color = color
    self.brand = brand

my_car = Car("red", "Toyota")
print(my_car.color) # prints: red
print(my_car.brand) # prints: Toyota

In the example above, when we create my_car, we pass "red" and "Toyota" to the __init__ method, which sets the color and brand of the car.

Conclusion

In the world of Python programming, understanding how to define and call classes is a fundamental skill. Just as an architect needs to understand blueprints to build a house, a Python developer needs to understand classes to build robust and reusable code.

Classes, with their properties and methods, allow us to create complex systems from simple, reusable components. The next time you see a car, think about how you would design its class. What properties would it have? What actions can it perform? This real-world analogy can be a powerful tool to help you understand and master Python classes. ```