Ооп питон пример программы

В этой статье мы с вами разберем фундаментальную концепцию объектно-ориентированного программирования в Python на примерах. Python в своем арсенале имеет множество подходов к реализации задач, самым популярным решением является ООП.

Определение класса

Для определение класса, в python используется оператор class . Классы — это схема объектов. В классах содержится описание объектов. Рассмотрим пример создание пустого класса.

class Students: pass

Пустой класс создан, давайте теперь создадим класс, в котором будут отображаться студенты, и их успеваемость.

Пример создания класса на Python

class Students: count = 0 def __init__(self,name,mark): self.name = name self.mark = mark Students.count += 1 def counter(self): print(‘Всего студентов <>’.format(Students.count) ) def students_cl(self): print(‘Имя:<>, Отметка: <>’.format(self.name,self.mark))

  • Переменная count — находится внутри нашего класса, получить доступ к этой переменной можно Students.count
  • Метод __init__ это конструктор нашего класса, или как принято называть метод инициализации
  • Остальные методы, это обычные функции, отличительной чертой которых является то, что первым аргументом для них будет является аргумент self

Создание экземпляров класса

Логика создания экземпляра класса, реализована следующим образом. Вызываем нужный класс по его имени, затем передаем ему аргументы, которые принимает конструктор __init__ .

Python — Пример объектно-ориентированного программирования

st1 = Students(«Тимур», 5) st2 = Students(«Антон», 3)

То есть, в методе __init__ мы указали два аргумента, это имя, и отметка по успеваемости, соответственно, мы передаем два этих аргумента.

Доступ к атрибутам класса

Получение доступа к атрибутам класса, осуществляется с помощью оператора .

st1.students_cl() st2.students_cl() print(«Все студентов: <>».format(Students.count))
Теперь рассмотрим весь листинг кода:
class Students: count = 0 def __init__(self,name,mark): self.name = name self.mark = mark Students.count += 1 def counter(self): print(‘Всего студентов <>’.format(Students.count) ) def students_cl(self): print(‘Имя:<>, Отметка: <>’.format(self.name,self.mark)) st1 = Students(«Тимур», 5) st2 = Students(«Антон», 3) st1.students_cl() st2.students_cl() print(«Все студентов: <>».format.Students.count) Результат: Имя:Тимур, Отметка: 5 Имя:Антон, Отметка: 3 Всего студентов: 2

Читайте также:
Программа гармония цели и задачи

Добавление, удаление и изменение атрибутов класса

st1.course = 2 # Добавление атрибута ‘course’ st1.course = 3 # Изменение атрибута del st1.course # Удаление атрибута

Для доступа к атрибутам мы можем использовать следующие функции:

  1. getattr(obj, name [, default]) — Доступ к атрибуту объекта
  2. hasattr(obj, age) — проверка на наличие атрибута age
  3. setattr(obj, age, value) — задать атрибут, в случае его отсутствия он будет создан
  4. delattr(obj, name) — удаление атрибута

Источник: pydocs.ru

Объектно ориентированное программирование в Python за 10 минут!

diyan / oop_in_python_sample.py

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

# -*- coding: utf-8 -*-
«»»
Абстракция (abstraction) — метод решения задачи, при котором объекты разного
рода объединяются общим понятием (концепцией), а затем сгруппированные сущности
рассматриваются как элементы единой категории.
Инкапсуляция (encapsulation) — техника, при которой несущественная с точки
зрения интерфейса объекта информация прячется внутри него.
Наследование (inheritance) — свойство объектов, посредством которого экземпляры
класса получают доступ к данным и методам классов-предков без их повторного
определения.
Полиморфизм (polymorphism) — свойство, позволяющее использовать один и тот же
интерфейс для различных действий; полиморфной переменной, например,
может соответствовать несколько различных методов.
«»»
from __future__ import unicode_literals
class Vehicle ( object ):
def __init__ ( self , speed , max_speed ):
self . speed = speed
self . max_speed = max_speed
print ( ‘Было создано транспортное средство’ )
def accelerate ( self , x ):
self . speed = self . speed + x
if self . speed > self . max_speed :
self . speed = self . max_speed
def brake ( self , x ):
self . speed = self . speed — x
if self . speed < 0 :
self . speed = 0
def print_status ( self ):
print ( ‘Скорость транспортного средства равна км/ч’ . format (
self . speed ))
class Motorcycle ( Vehicle ):
def __init__ ( self , speed , max_speed ):
Vehicle . __init__ ( self , speed , max_speed )
# Дополнительные поля
self . _front_tire_width = 95
self . _rear_tire_width = 95
def set_tires_width ( self , front , rear ):
self . _front_tire_width = front
self . _rear_tire_width = rear
print ( ‘На мотоцикл были установлены новые шины’ )
def print_tire_info ( self ):
print ( ‘Ширина передней шины мм’ . format ( self . _front_tire_width ))
print ( ‘Ширина задней шины мм’ . format ( self . _rear_tire_width ))
class Automobile ( Vehicle ):
def __init__ ( self , speed , max_speed ):
Vehicle . __init__ ( self , speed , max_speed )
# Дополнительные поля
self . _gear = 0
self . _color = ‘синий’
def set_gear ( self , gear ):
self . _gear = gear
def print_status ( self ):
Vehicle . print_status ( self )
print ( ‘Автомобиль переключен на скорость № ‘ . format ( self . _gear ))
print ( ‘Автомобиль покрашен в цвет’ . format ( self . _color ))
def set_color ( self , color ):
self . _color = color
def get_color ( self ):
return self . _color
print ( ‘>>> m = Motorcycle(40, 120)’ )
m = Motorcycle ( 40 , 120 )
print ( ‘>>> m.print_status()’ )
m . print_status ()
print ( ‘>>> m.set_tires_width(90, 100)’ )
m . set_tires_width ( 90 , 100 )
print ( ‘>>> m.print_tire_info()’ )
m . print_tire_info ()
print ( ‘ n n >>> a = Automobile(0, 150)’ )
a = Automobile ( 0 , 150 )
print ( ‘>>> a.accelerate(40)’ )
a . accelerate ( 40 )
print ( ‘>>> a.set_gear(2)’ )
a . set_gear ( 2 )
print ( ‘>>> a.print_status()’ )
a . print_status ()
print ( «>>> a.set_color(‘красный’)» )
a . set_color ( ‘красный’ )
print ( ‘>>> color = a.get_color()’ )
color = a . get_color ()
print ( color )
«»»
В результате запуска данной программы в консоли будет распечатан следующий
вывод:
>>> m = Motorcycle(40, 120)
Было создано транспортное средство
>>> m.print_status()
Скорость транспортного средства равна 40 км/ч
>>> m.set_tires_width(90, 100)
На мотоцикл были установлены новые шины
>>> m.print_tire_info()
Ширина передней шины 90 мм
Ширина задней шины 100 мм
>>> a = Automobile(0, 150)
Было создано транспортное средство
>>> a.accelerate(40)
>>> a.set_gear(2)
>>> a.print_status()
Скорость транспортного средства равна 40 км/ч
Автомобиль переключен на скорость № 2
Автомобиль покрашен в синий цвет
>>> a.set_color(‘красный’)
>>> color = a.get_color()
красный
«»»
Читайте также:
Программа для того чтобы открыть файл swf

Источник: gist.github.com

Объектно-ориентированное программирование в Python

Python — мультипарадигмальный язык программирования. Он поддерживает разные подходы к программированию.

Один из популярных подходов к решению проблем — создание объектов. Это называется объектно-ориентированным программированием (ООП).

У объекта есть две характеристики:

Рассмотрим пример. Допустим, наш объект — это попугай. У попугая есть такие свойства:

  • Имя, возраст, цвет. Это атрибуты.
  • То, как попугай поет и танцует. Это поведение.

ООП предлагает писать код, который можно использовать повторно. Такой принцип называется DRY (don’t repeat yourself, «не повторяйся»).

Класс

Класс — это шаблон объекта.

Вернемся к нашему попугаю. Если мы схематично нарисуем его на бумаге, такой набросок будет являться классом. По нему можно сделать, например, чучело попугая.

Давайте создадим класс, который описывает попугая:

class Parrot: pass

Для объявления класса Parrot мы использовали ключевое слово class . Из классов мы получаем экземпляры, созданные по подобию этого класса.

Объект

Объект — это экземпляр класса. Объявленный класс — это лишь описание объекта: ему не выделяется память.

Например, экземпляра класса Parrot будет выглядеть так:

# obj — экземпляр класса Parrot obj = Parrot()

Теперь разберемся, как написать класс и его объекты.

# Создаем класс и его объекты class Parrot: # атрибуты класса species = «птица» # атрибуты экземпляра def __init__(self, name, age): self.name = name self.age = age # создаем экземпляра класса kesha = Parrot(«Кеша», 10) cookie = Parrot(«Куки», 15) # получаем доступ к атрибутам класса print(«Кеша — <>».format(kesha.__class__.species)) print(«Куки тоже <>».format(cookie.__class__.species)) # получаем доступ к атрибутам экземпляра print(«<> — <>-летний попугай».format(kesha.name, kesha.age)) print(«<> — <> летний попугай».format(cookie.name, cookie.age))

Вывод:

Кеша — птица
Куки тоже птица
Кеша — 10-летний попугай Куки — 15-летний попугай

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru