Connect with us

Обучение

Заметки Python #14: Методы и свойства объектов, классы

194

 

Начинаем изучать основы объектно-ориентированного программирования на Python.

Классы

Для примера мы создадим класс «Drinks». Внутри будут объекты «Whisky» и «Pepsi». Дальше будем их развивать, смешивать, добавлять свойства и методы. Приступим.

[code]

class Drinks: # это класс.
name = «unknown» # это свойство класса, которое будет наследовать объект.
def method (self): # создаем метод. Метод — это та же самая функция.
drink = self.name
print («This drink is » + drink)

#создаем объекты (экземпляры класса), которые будут наследовать свойство класса Drinks

whisky = Drinks()
whisky.name = «Whisky»
pepsi = Drinks()
pepsi.name = «Pepsi»

#self хранит в себе то же самое, что объекты. Передается даже при пустых скобках

whisky.method()
pepsi.method()

[/code]

 

Результат

Два объекта могут наследовать один и тот же класс, но они будут меняться вне зависимости друг от друга

Передача аргументов в методы. Изменение свойств

Значения в свойствах класса можно и нужно менять, в зависимости от поставленной задачи. Так же мы можем передавать некоторые аргументы в методы, т.к. это у нас обычная функция. Добавим еще несколько свойств для напитков — литраж и тару

[adace-ad id=»3470″]

 

[code]

class Drinks:
name = «unknown»
liter = 500 # добавили объем напитка в миллилитрах (литраж)
volume = 2 # добавили количество бутылок
def method (self):
drink = self.name
print («This drink is » + drink)
def party (self, volume=False): #второй параметр может быть не передан (self передается в любом случае)
if volume == False: # если он не передан
return 500 # то литраж остается тем же
self.liter = self.liter * volume # если передан умножаем на количество бутылок

whisky = Drinks()
whisky.name = «Whisky»
pepsi = Drinks()
pepsi.name = «Pepsi»

whisky.party(4) # если мы берем 4 бутылки
pepsi.party()

print(whisky.liter) # то литраж будет 2000 мл = 2 литра вискарика
print(pepsi.liter)

[/code]

 

Результат:

[adace-ad id=»3475″]

 

Конструктор класса

Конструктор класса позволяет писать код нашей программы в более компактном и удобном виде, благодаря тому, что аргументы класса можно передавать в одной строчке. Метод-конструктор вызывается с помощью функции __init__. Данный метод-конструктор вызывается автоматически при инициализации экземпляра объекта. Т.е. прописывать его вне класса нет необходимости. Мы можем прописать необходимые аргументы в __init__, а затем прописать их в круглых скобках при вызове класса. Как это выглядит?

[code]

class Drinks:
name = «unknown»
liter = 500 # добавили объем напитка в миллилитрах (литраж)
volume = 2 # добавили количество бутылок

def __init__(self, name, volume, overall=False): # создаем конструктор, куда передаем параметры
self.name = name
self.volume = volume
self.overall = self.liter * self.volume

# Каждому объекту из класса мы передаем агрументы метода __init__

whisky = Drinks(«Whisky», 2)
pepsi = Drinks(«Pepsi», 3)

print(whisky.name, pepsi.name)
print(whisky.overall, pepsi.overall)

[/code]

 

Результат:

Запомнить: Метод __init__ вызывается при инициализации экземпляра объекта, хотя мы явно не указываем это в коде.

Запомнить: В ООП допускается, разрешается и имеется возможность вызывать метод, который уже был создан в классе из другого метода этого класса (метод внутри метода)

Нажмите что бы оставить комментарий

Ответить

Ваш адрес email не будет опубликован.

Лучшие сервисы стриминга музыки в 2019 году

Сервисы

Телевидение Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Ростелеком

Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Гаджеты

LG WEB OS: приложения, обновления, настройка, проблемы со звуком

Гаджеты

Advertisement Яндекс.Метрика

Digital2.ru - Тренды, Профессии IT, WEB- разработка, Вакансии, Автоматизация, Цифровая экономика
Свободное копирование и распространение материалов с сайта Digital2.ru
разрешено только с указанием активной ссылки на Digital2 как на источник.
Copyright 2018 - 2020 © All rights reserved

OPGIO.COM

Connect