Python class Point3D

Résolu
Bonjour,
j'ai un problème avec ce programme en Python, il ne calcule pas le milieu du point
voilà le code:
class Point3D:
def __init__(self, x=0, y=0, z=0):
self.x = x
self.y = y
self.z = z

def milieu(self, p):
dx= (self.x - p.x)/2
dy = (self.y - p.y)/2
dz = (self.z - p.z)/2
return Point3D(dx,dy,dz)

#main
p1=Point3D(1,2,3)
p2=Point3D(2,3,4)
p3=p1.milieu(p2)

il m'affiche: Point3D instance has no attribute 'milieu'
d'après le code je peux remarquer que le problème réside dans l'appel du constructeur dans la fonction milieu mais je ne sais pas comment le corriger
merci de me répondre

1 réponse

  1. bon j'ai trouvé une autre solution pour éviter l'appel du constructeur dans la fonction
    def milieu(self,p):
    dx=(self.x-p.x)/2
    dy=(self.y-p.y)/2
    dz=(self.z-p.z)/2
    return dx, dy, dz
    #main
    triple=p1.milieu(p2)
    p=Point3D(tri[0],tri[1],tri[2])
    elle ça marche bien
    0