input: Write a python function to add two 3D vectors and normalize the result.
  assert (Vector3D(1, 2, 3) + Vector3D(4, 5, 6)).normalize().magnitude() == 1
  assert (Vector3D(0, 0, 0) + Vector3D(0, 0, 0)).normalize().magnitude() == 0
  assert (Vector3D(-1, -2, -3) + Vector3D(1, 2, 3)).normalize().magnitude() == 0
output: import math
  
  class Vector3D:
      def __init__(self, x, y, z):
          self.x = x
          self.y = y
          self.z = z
  
      def __add__(self, other):
          return Vector3D(self.x + other.x, self.y + other.y, self.z + other.z)
  
      def magnitude(self):
          return math.sqrt(self.x**2 + self.y**2 + self.z**2)
  
      def normalize(self):
          mag = self.magnitude()
          if mag == 0:
              return Vector3D(0, 0, 0)
          return Vector3D(self.x / mag, self.y / mag, self.z / mag)