Initializing class, __init__ () method

Many classes like to create objects with instances customized to a specific initial state.

__init__ is one of the many method names that have special significance in Python classes. Notice the double underscore both in the beginning and at the end in the name.

__init__ is short for "initialize", so it's also called initialization method. All classes should have an __init__() method. When you create a new object of the class, Python automatically calls __init__() right away to initialize the new object.

In previous Apple class, it looks like we set the object's value by assigning values to the class variables(name = 'Fuji') when defining the class. Whenever a new Apple object is created, it always set to be Fuji

But in fact, the standard way to initialize an object's values when creating objects is to use __init__( ) method in class.

Let's rewrite the Apple class in a more standard way:

class Apple:
    def __init__(self)
        self.color = 'red'

    def say(self):
        print("I'm an apple.")

a1 = Apple()          # create an Apple instance, a1
print(a1.color)      # red
a1.say()            # I'm an apple

Like all methods in a class, __init__() always takes at least one argument (also the first argument), self, which refers to the object itself being created.

Here in __init__(), we define a variable using self.color to indicate that color is instance variable, it belongs to an object.

If a class defines an __init__() method, when you create a class instance (an object), Python automatically calls __init__function only once to initializing an object's variables.

So in this example, a1 is a new, initialized Apple instance, it has variable color and has initial value 'red'.

a1 also has a method a1.say() that can print out message "I'm an apple."

results matching ""

    No results matching ""