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