I am creating a base class `Geometry` with 1 attribute `id` = A unique ID for each `Geometry` object, an integer that starts at 0. Using a constructor (`__init__`) for when creating a new `Geometry` object. The constructor of the `Geometry` class should automatically assign the `ID` of the `Geometry` object. 

I've created a subclass `Point` that inherits the `Geometry` class and contains the following attributes: `uid` (inherited from `Geometry`), `x` (The `x` coordinate of the `Point`) and y (The `y` coordinate of the `Point`). 

I used `__init__` constructor to create new Point object having an `ID` inherited from the `Geometry` class as well as x and y coordinates. I used a string conversion method to return a string representation of the point. 

My current code:

```
#Class Geometry
#attribute id
class Geometry(object):
    def __init__(self,uid=0):
        uid = 0
        self.uid = uid
        uid += 1 #not sure if this is neseccary. said uniqueId needs to start at 0, nothing about progressing

class Point(Geometry):
    def __init__(self,x,y):
        Geometry.def__init__(self,uid)
        self.x = x
        self.y = y

    def __str__(self):
        return self.uid + self.x + self.y

```

Example output:

> 
> p1 = Point(1.216, 3.4582)
>  Error: Geometry.def\_\_init\_\_(self,uid)
>  AttributeError: type object 'Geometry' has no attribute 'def\_\_init\_\_' 
> 
> 
> 

Any guidance is appreciated, Thanks