мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Следующая версияСледующая версия справа и слева
python:week22 [21/01/2019 01:43] – [Классы] ybezrukovpython:week22 [21/01/2019 02:02] – [Классы] ybezrukov
Строка 103: Строка 103:
  
   def __init__(self, color='plain'):   def __init__(self, color='plain'):
-  """ задает параметры средства передвижения """ +    """ задает параметры средства передвижения """ 
-    print('New car made!')+    print('Сделали машину!')
     self.color = color     self.color = color
  
Строка 112: Строка 112:
 </code> </code>
  
 +Обратите особое внимание на метод ''__init__''. Это специальный метод в Питоне и должен начинаться и заканчиваться двумя символами подчеркивания. Он автоматически вызывается всякий раз, когда создается новый объект. Теперь, если мы запустим этот код, то на экране будет три раза написана строка ''Сделали машину!''
  
 +Так же метод ''__init__'' имеет аргумент с именем ''color''. Запись ''color='plain''' в описании аргументов функции задает значение аргумента по-умолчанию (т.е. значение, которое получит переменная color если мы не укажем никакого аргумента. Добавим цвета:
 +
 +<code python>
 +red_car = Vehicle(color='red')
 +green_car = Vehicle(color='green')
 +blue_car = Vehicle(color='blue')
 +</code>
 +
 +Если напечатать на экран значение переменной, можно заметить, что у каждого экземпляра цвет свой, хотя созданы они были по одному описанию (классу).
 +
 +<code python>
 +print(red_car.color)
 +print(green_car.color)
 +print(blue_car.color)
 +</code>
 +
 +
 +Так вышло потому, что мы присвоили значение переменной ''self.color''. ''self'' это еще одно ключевое слово в Питоне, оно ссылается на конкретный экземпляр класса (объект). Всякий раз когда мы используем ''self'', мы можем изменить или прочитать данные, уникальные для объекта: красная машина - красная.
 +
 +Расширим метод ''__init__'' и добавим в него 
 +
 +<code python>
 +self.noise = 'Дрыннь!'
 +</code>
 +
 +Можно, конечно, просто напечатать на экран значение этой переменной. Сделаем немного иначе, пусть мы хотим чтобы машина ехала, и в будущем используем это в коде. Или изменим метод передвижения. Заведем функцию (метод) чтобы иметь контроль над тем как все работает. Добавим его сразу после метода ''__init__'':
 +
 +<code python>
 +def drive(self):
 +  print(self.noise)
 +</code>
 +
 +Вызвать этот метод можно написав:
 +
 +<code python>
 +red_car.drive()
 +</code>
 +
 +Всякий раз когда мы будем вызывать метод Питон будет печатать на экран звук движения машины. Вся наша программа сейчас должна выглядеть вот так:
 +
 +<code python>
 +class Vehicle:
 +  """ Этот класс описывает средство передвижения """
 +
 +  def __init__(self, color='plain'):
 +    """ задает параметры средства передвижения """
 +    print('Сделали машину!')
 +    self.color = color
 +    self.noise = 'Дрыннь!'
 +    
 +  def drive(self):
 +    print(self.noise)
 +    
 +red_car = Vehicle(color='red')
 +green_car = Vehicle(color='green')
 +blue_car = Vehicle(color='blue')
 +
 +print(red_car.color)
 +print(green_car.color)
 +print(blue_car.color)
 +
 +red_car.drive()
 +</code>
 +
 +===== Наследование =====