input: Write a function to implement a hash table in Python that supports insert, delete and retrieve operations. The function must be named `HashTable` and should have the following methods: `__init__`, `insert`, `retrieve`, and `delete`. 
  
  assert HashTable().retrieve("non_existent_key") == None
  assert HashTable().insert("my_key", 42) == None
  assert HashTable().retrieve("my_key") == 42
  assert HashTable().delete("my_key") == None
  assert HashTable().retrieve("my_key") == None
output: class HashTable:
      def __init__(self):
          self.size = 10
          self.table = [[] for _ in range(self.size)]
  
      def _hash(self, key):
          return hash(key) % self.size
  
      def insert(self, key, value):
          index = self._hash(key)
          for kvp in self.table[index]:
              if kvp[0] == key:
                  kvp[1] = value
                  return
          self.table[index].append([key, value])
  
      def retrieve(self, key):
          index = self._hash(key)
          for kvp in self.table[index]:
              if kvp[0] == key:
                  return kvp[1]
          return None
  
      def delete(self, key):
          index = self._hash(key)
          for i, kvp in enumerate(self.table[index]):
              if kvp[0] == key:
                  del self.table[index][i]
                  return