Как сделать генератор в словаре для вывода N записей за раз?
Есть класс AddressBook который наследуется от UserDict. Как мне в методе Iterator сделать генератор по записям словаря и за одну итерацию возвращать по n записей? Сначала я пытался написать iter и next, но потом понял что он наследуется и у него уже есть эти методы. Поэтому нужно написать это в методе Iterator, но пока что не понимаю как это сделать потому что генераторы и итераторы сложно даются мне. Также я пытался брать срезы до n, но это не список. В закомментированом коде я сделал ключи и значения в виде списков, в которых можно брать срезы, но это тоже не то - мне же нужен вывод в виде словаря. В общем объясните как это можно сделать пожалуйста.
class AddressBook(UserDict):
address_book = {}
def iterator(self, n):
if not self.data:
raise StopIteration
records_to_return = self.data[:n]
self.data = self.data[n:]
#a = list(self.data.keys())
#b = list(self.data.values())
#print(a[:n])
#print(b[:n])
for record in self.data:
print(record, '???')