Как можно вставить функцию генерирующую числа в родительский класс, чтоб потом обращаться к методу из класса-потомка?

Как можно вставить id_generator в класс Employee, чтобы потом обращаться к методу из класса-потомка Volunteer?

def id_generator():
    for i in range(1, 10001):
        yield i


gen = id_generator()


class Employee:
    def __init__(self, name, id=''):
        self.name = name
        self.id = id


class Volunteer(Employee):
    def __init__(self, name, city, status):
        self.city = city
        self.status = status
        Employee.__init__(self, name, "E" + str(next(gen)))

    def display(self):
        return f'{self.name}, г.{self.city}, статус "{self.status}"'


vol = Volunteer("Иван Петров", "Москва", "Наставник")

print(vol.display())

Ответы (1 шт):

Автор решения: eri

Так вставь и обращайся

def id_generator():
    for i in range(1, 10001):
        yield i

class Employee:
    gen = id_generator()

    def __init__(self, name):
        self.name = name
        self.id = next(self.gen)

....

def display(self):
    return f'{self.id}: {self.name}, г.{self.city}, статус "{self.status}"'
→ Ссылка