code: def dot(vec1, vec2):
      
      if isinstance(vec1, Vector3) and isinstance(vec2, Vector3):
          return (vec1.x * vec2.x) + (vec1.y * vec2.y) + (vec1.z * vec2.z)
      elif isinstance(vec1, Vector4) and isinstance(vec2, Vector4):
          return (vec1.x * vec2.x) + (vec1.y * vec2.y) + (vec1.z * vec2.z) + (vec1.w * vec2.w)
      else:
          raise TypeError("vec1 and vec2 must a Vector type")
docs: Returns the dot product of two Vectors