Skip to content

Commit

Permalink
python v3
Browse files Browse the repository at this point in the history
  • Loading branch information
ugapanyuk committed Sep 25, 2019
1 parent 72c91c2 commit 956afd8
Show file tree
Hide file tree
Showing 15 changed files with 151 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

* [Лабораторная работа №1. Когнитивные карты](https://docs.google.com/document/d/1rjBai3gXuVcYie3QIyMVEsfO9TpUOtq3Gg6QgZzV_Cw/edit?usp=sharing)
* [Лабораторная работа №2. Python. Функциональные возможности](https://docs.google.com/document/d/1aSWeBivbn1kVZsowpsnGJZDF_E68KAS1vXxWg2Kh6GQ/edit?usp=sharing)
* [Лабораторная работа №3. Python. Объектно-ориентированные возможности](https://docs.google.com/document/d/1Cr_ijD3sWv0N0xE3rHiJaT4H5D7L8mKcLFqSa9d6Aco/edit?usp=sharing) ( [Пример](examples/lab_python_oop.zip) )
* [Лабораторная работа №3. Python. Объектно-ориентированные возможности](https://docs.google.com/document/d/1Cr_ijD3sWv0N0xE3rHiJaT4H5D7L8mKcLFqSa9d6Aco/edit?usp=sharing) ( [Пример](examples/lab_python_oop) )

### Автоматизированное тестирование

Expand Down
Binary file removed examples/lab_python_oop.zip
Binary file not shown.
Empty file.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
36 changes: 36 additions & 0 deletions examples/lab_python_oop/lab_python_oop/circle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from lab_python_oop.figure import Figure
from lab_python_oop.color import FigureColor
import math


class Circle(Figure):
"""
Класс «Круг» наследуется от класса «Геометрическая фигура».
"""
FIGURE_TYPE = "Круг"

@classmethod
def get_figure_type(cls):
return cls.FIGURE_TYPE

def __init__(self, color_param, r_param):
"""
Класс должен содержать конструктор по параметрам «радиус» и «цвет». В конструкторе создается объект класса «Цвет фигуры» для хранения цвета.
"""
self.r = r_param
self.fc = FigureColor()
self.fc.colorproperty = color_param

def square(self):
"""
Класс должен переопределять метод, вычисляющий площадь фигуры.
"""
return math.pi*(self.r**2)

def __repr__(self):
return '{} {} цвета радиусом {} площадью {}.'.format(
Circle.get_figure_type(),
self.fc.colorproperty,
self.r,
self.square()
)
22 changes: 22 additions & 0 deletions examples/lab_python_oop/lab_python_oop/color.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

class FigureColor:
"""
Класс «Цвет фигуры»
"""

def __init__(self):
self._color = None

@property
def colorproperty(self):
"""
Get-аксессор
"""
return self._color

@colorproperty.setter
def colorproperty(self, value):
"""
Set-аксессор
"""
self._color = value
13 changes: 13 additions & 0 deletions examples/lab_python_oop/lab_python_oop/figure.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from abc import ABC, abstractmethod


class Figure(ABC):
"""
Абстрактный класс «Геометрическая фигура»
"""
@abstractmethod
def square(self):
"""
содержит виртуальный метод для вычисления площади фигуры.
"""
pass
37 changes: 37 additions & 0 deletions examples/lab_python_oop/lab_python_oop/rectangle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
from lab_python_oop.figure import Figure
from lab_python_oop.color import FigureColor


class Rectangle(Figure):
"""
Класс «Прямоугольник» наследуется от класса «Геометрическая фигура».
"""
FIGURE_TYPE = "Прямоугольник"

@classmethod
def get_figure_type(cls):
return cls.FIGURE_TYPE

def __init__(self, color_param, width_param, height_param):
"""
Класс должен содержать конструктор по параметрам «ширина», «высота» и «цвет». В конструкторе создается объект класса «Цвет фигуры» для хранения цвета.
"""
self.width = width_param
self.height = height_param
self.fc = FigureColor()
self.fc.colorproperty = color_param

def square(self):
"""
Класс должен переопределять метод, вычисляющий площадь фигуры.
"""
return self.width*self.height

def __repr__(self):
return '{} {} цвета шириной {} и высотой {} площадью {}.'.format(
Rectangle.get_figure_type(),
self.fc.colorproperty,
self.width,
self.height,
self.square()
)
27 changes: 27 additions & 0 deletions examples/lab_python_oop/lab_python_oop/square.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from lab_python_oop.rectangle import Rectangle


class Square(Rectangle):
"""
Класс «Квадрат» наследуется от класса «Прямоугольник».
"""
FIGURE_TYPE = "Квадрат"

@classmethod
def get_figure_type(cls):
return cls.FIGURE_TYPE

def __init__(self, color_param, side_param):
"""
Класс должен содержать конструктор по параметрам «сторона» и «цвет».
"""
self.side = side_param
super().__init__(color_param, self.side, self.side)

def __repr__(self):
return '{} {} цвета со стороной {} площадью {}.'.format(
Square.get_figure_type(),
self.fc.colorproperty,
self.side,
self.square()
)
15 changes: 15 additions & 0 deletions examples/lab_python_oop/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from lab_python_oop.rectangle import Rectangle
from lab_python_oop.circle import Circle
from lab_python_oop.square import Square


def main():
r = Rectangle("синего", 3, 2)
c = Circle("зеленого", 5)
s = Square("красного", 5)
print(r)
print(c)
print(s)

if __name__ == "__main__":
main()

0 comments on commit 956afd8

Please sign in to comment.