10.4. OOP Initializer Method

  • It's a first method run after object is initiated

  • All classes has default __init__()

  • __init__() is not a constructor!

10.4.1. Initializer method without arguments

Listing 109. Initializer method without arguments
class Iris:
    def __init__(self):
        print('Latin name: Iris Setosa')


flower = Iris()
# Latin name: Iris Setosa

10.4.2. Initializer method with arguments

Listing 110. Initializer method with arguments
class Iris:
    def __init__(self, species):
        print(f'Latin name: {species}')


setosa = Iris('Iris Setosa')
# Latin name: Iris Setosa

virginica = Iris(species='Iris Virginica')
# Latin name: Iris Virginica

iris = Iris()
# TypeError: __init__() missing 1 required positional argument: 'species'

10.4.3. Checking values

class Kelvin:
    def __init__(self, value):
        if self.value < 0.0:
            raise ValueError('Kelvin temperature must be greater than 0')
        else:
            self.value = value

ice = Kelvin(273.15)
print(ice)
# 273.15

not_existing = Kelvin(-300)
# ValueError: Kelvin temperature must be greater than 0'

10.4.4. Assignment

10.4.4.1. Classes and instances

English
  1. Create one class Temperature

  2. Create three instances of Temperature class

  3. Values must be passed at the initialization

  4. At initialization instances print:

    1. Instance celsius prints temperature 36.6

    2. Instance fahrenheit prints temperature 97.88

    3. Instance kelvin prints temperature 309.75

Polish
  1. Stwórz jedną klasę Temperature

  2. Stwórz trzy instancje klasy Temperature

  3. Wartości mają być podawane przy inicjalizacji

  4. Przy inicjalizacji instancje wypisują:

    1. Instancja celsius wyświetla temperaturę 36.6

    2. Instancja fahrenheit wyświetla temperaturę 97.88

    3. Instancja kelvin wyświetla temperaturę 309.75