195 – ID generator

195 – ID generator#

Use itertools.count to generate unique sequential IDs:

from itertools import count

class Tab:
    _id_generator = count()
    
    def __init__(self):
        self.tab_id = next(self._id_generator)

By keeping a reference to _id_generator and reusing it inside Tab.__init__, every time you create a tab you get a new ID:

tab1 = Tab()
tab2 = Tab()
tab3 = Tab()

print(tab1.tab_id)  # 0
print(tab2.tab_id)  # 1
print(tab3.tab_id)  # 2