title: TypeError: '<' not supported between instances Python
body: <p>I am solving a problem with genetic algorithm in python 3. I have not completed the full code yet. I test a part of the code whenever I complete it.</p>
  
  <p>At present, I am stuck with an error saying: </p>
  
  <blockquote>
    <p>TypeError: '&lt;' not supported between instances of 'part' and 'part'</p>
  </blockquote>
  
  <p>The interesting thing is, this error does not always show. Sometimes the code runs smoothly and show the desired output, but sometimes it shows this error.</p>
  
  <p>What is the reason for this?  </p>
  
  <p>I am attaching the code and the error message.<br>
  I am using PyCharm.</p>
  
  <pre><code>import random
  
  
  class part():
      def __init__(self, number):
          self.number = number
          self.machine_sequence = []
  
      def add_volume(self, volume):
          self.volume = volume
  
      def add_machine(self, machine_numbers):
          self.machine_sequence.append(machine_numbers)
  
  
  def create_initial_population():
      part_family = []
  
      for i in range(8):
          part_family.append(part(i))
  
      part_population = []
  
      for i in range(6):
          part_population.append(random.sample(part_family, len(part_family)))
  
      for i in part_population:
          for j in i:
              j.add_volume(random.randrange(100, 200))
  
      return part_population
  
  
  def fitness(part_family):
      sum_of_boundary = []
      for i in range(0, 8, 2):
          sum_of_boundary.append(sum(j.volume for j in part_family[i:i + 2]))
  
      fitness_value = 0
  
      for i in range(len(sum_of_boundary) - 1):
          for j in range(i + 1, len(sum_of_boundary)):
              fitness_value = fitness_value + abs(sum_of_boundary[i] - sum_of_boundary[j])
  
      return fitness_value
  
  
  def sort_population_by_fitness(population):
      pre_sorted = [[fitness(x),x] for x in population]
      sort = [x[1] for x in sorted(pre_sorted)]
      for i in sort:
          for j in i:
              print(j.volume, end = ' ')
          print()
  
      return sort
  
  
  def evolve(population):
      population = sort_population_by_fitness(population)
      return population
  
  
  population = create_initial_population()
  population = evolve(population)
  </code></pre>
  
  <p>the error message:
  <img src="https://i.stack.imgur.com/ocrgL.jpg" alt="enter image description here"></p>
  
  <p>The Output is (which is randomized every time):
  <img src="https://i.stack.imgur.com/bqpQs.jpg" alt="enter image description here"></p>