What is the meaning of @Property inheritance

Hi people,

I have just facing an issue I found that @property inheritance in Python is so complicated and it is not worth to type it. As far as I understand we can inherite all members easily except properties.

I am creating a general explanation about class members but Geometry.width dows not work as poroperty, Python think it is an argument. :

import Rhino
import scriptcontext
import rhinoscriptsyntax as rs

# Python 2.7 does not support function overloading.
# Alternatively use this package: https://pypi.org/project/multipledispatch/

class Geometry(object):
    # Constructor is not required
    # Geometry properties: Width,Height,Name,ID,Colour,Fill colour etc.
    @property
    def width(self): # Property - Width
        return self._width
    @width.setter
    def width(self, value):
        self._width = value
    @property
    def heigh(self): # Property - Height
        return self._height
    @width.setter
    def heigh(self, value):
        self._height = value
    @property
    def name(self,string): # Property - Name
        string = "Geometry"
    @width.setter
    def heigh(self, value):
        self._height = value
    # Functions:
    def position(self): # Function - Position
        position = rs.GetPoint ( "Position of the geometry", None, None, False )
    def info(self): # Function - Info
        text = "This is a two dimensional object."
        print text
#
class Point(Geometry):
    def Draw(self,XYZ):
        pass
class Line(Geometry):
    def Draw(self, Point1, Point2):
        pass
class Oval(Geometry):
    def Draw(self):
        plane = rs.WorldXYPlane()
        rs.AddEllipse ( plane, Geometry.width, Geometry.height )
class Rectangle(Geometry):
   def Draw(self):
       pass
class Triangle(Geometry):
    def Draw(self):
        pass