input: 
  from typing import List
  
  
  def generate_vector_class(attribute_names: List[str]) -> str:
      """ Generate a Python class code for a 3D vector where each dimension is defined by
      the given attribute names. The class should have an __init__ method to initialize these
      attributes and a __str__ method to return the vector as a string in the format
      "(x, y, z)".
      
      >>> generate_vector_class(['x', 'y', 'z'])
      class Vector3D:
          def __init__(self, x, y, z):
              self.x = x
              self.y = y
              self.z = z
      
          def __str__(self):
              return "(" + str(self.x) + ", " + str(self.y) + ", " + str(self.z) + ")"
      """
  
output:     
      class_code = "class Vector3D:\n"
      class_code += "    def __init__(self, " + ", ".join(attribute_names) + "):\n"
      for attr in attribute_names:
          class_code += "        self." + attr + " = " + attr + "\n"
      class_code += "\n"
      class_code += "    def __str__(self):\n"
      class_code += '        return "(" + ' + " + ", ".join(['str(self.' + attr + ')' for attr in attribute_names]) + ' + ")"\n'
      return class_code
  