Назначение атрибуту значения по умолчанию

We use cookies. Read the Privacy and Cookie Policy

Каждый атрибут класса должен иметь исходное значение, даже если оно равно 0 или пустой строке. В некоторых случаях (например, при задании значений по умолчанию) это исходное значение есть смысл задавать в теле метода __init__(); в таком случае передавать параметр для этого атрибута при создании объекта не обязательно.

Добавим атрибут с именем odometer_reading, исходное значение которого всегда равно 0. Также в класс будет включен метод read_odometer() для чтения текущих показаний одометра:

class Car():

def __init__(self, make, model, year):

"""Инициализирует атрибуты описания автомобиля."""

self.make = make

self.model = model

self.year = year

(1) . . . .self.odometer_reading = 0

. . . .

def get_descriptive_name(self):

...

. .

(2) . .def read_odometer(self):

. . . ."""Выводит пробег машины в милях."""

. . . .print("This car has " + str(self.odometer_reading) + " miles on it.")

. .

my_new_car = Car('audi', 'a4', 2016)

print(my_new_car.get_descriptive_name())

my_new_car.read_odometer()

Когда Python вызывает метод __init__() для создания нового экземпляра, этот метод сохраняет фирму-производителя, модель и год выпуска в атрибутах, как и в предыдущем случае. Затем Python создает новый атрибут с именем odometer_reading и присваивает ему исходное значение 0 (1) . Также в класс добавляется новый метод read_odometer() (2), который упрощает чтение пробега машины в милях.

Сразу же после создания машины ее пробег равен 0:

2016 Audi A4

This car has 0 miles on it.

Впрочем, у продаваемых машин одометр редко показывает ровно 0, поэтому нам понадобится способ изменения значения этого атрибута.