Use o método de classe herdada dentro de __init__

Eu tenho uma classe pai que é herdada por vários filhos. Eu gostaria de inicializar uma das crianças usando os@classmethod inicializadores. Como posso fazer isso? Eu tentei:

class Point(object):
    def __init__(self,x,y):
        self.x = x
        self.y = y

    @classmethod
    def from_mag_angle(cls,mag,angle):
        x = mag*cos(angle)
        y = mag*sin(angle)
        return cls(x=x,y=y)


class PointOnUnitCircle(Point):
    def __init__(self,angle):
        Point.from_mag_angle(mag=1,angle=angle)


p1 = Point(1,2)
p2 = Point.from_mag_angle(2,pi/2)
p3 = PointOnUnitCircle(pi/4)
p3.x #fail

questionAnswers(2)

yourAnswerToTheQuestion