# Python has no interfaces
# therefore, the example uses abstract classes
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def get_area(self):
pass
@property
@abstractmethod
def line_count(self):
pass
class Square(Shape):
def __init__(self, side_length):
self.side_length = side_length
def get_area(self):
return self.side_length * self.side_length
@property
def line_count(self):
return 4
square = Square(5)
area = square.get_area()
# area is 25
line_count = square.line_count
# line_count is 4
print(f"{area = }")
print(f"{line_count = }")