перевести объект в класс наследник python

Допустим приходит человек на собеседование и мы добавляем его в базу:

class People:
    def __init__(self, first_name, last_name, phone_number):
        self.first_name = first_name
        self.last_name = last_name
        self.phone_number = phone_number

man1 = People('Ivan', 'Ivanov', "+79998887766")

Нас человек устроил, он уже есть в базе и мы хотим присвоить ему новый статус "сотрудник":

    class Employers(People):
        def __init__(self, first_name, last_name, phone_number, id, salary):
            super().__init__(first_name, last_name, phone_number)
            self.id = id
            self.salary = salary

man1 = People('Ivan', 'Ivanov', "+79998887766", 11, 100000)

Есть способ присвоения нового класса, при этом, все параметры что бы сами передались дальше в класс наследник, сократив при этом передаваемые параметры?

    class Employees(People):
        def __init__(self, id, salary):
            self.id = id
            self.salary = salary

man1 = man1(Employees(11, 100000)) #как-то так ?

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

Автор решения: Xander
class People:
    
    def __init__(self, first_name, last_name, phone_number):
        self.first_name = first_name
        self.last_name = last_name
        self.phone_number = phone_number
        
        
class Employer(People):
    
    def __init__(self, first_name, last_name, phone_number, id_, salary):
        super().__init__(first_name, last_name, phone_number)
        self.id = id_
        self.salary = salary
    
    @classmethod
    def from_people(cls, people_object, id_, salary):
        employer_obj = cls(
            people_object.first_name,
            people_object.last_name,
            people_object.phone_number,
            id_,
            salary,
        )
        return employer_obj

man1 = People('Ivan', 'Ivanov', "+79998887766")

man1 = Employer.from_people(man1, id_=11, salary=100000)
→ Ссылка
Автор решения: Алексей Тишкин

Я тут подумал, а что, если для класса People добавить метод:

def go_to_employees(self, id_, salary):
    self.__class__ = Employer
    self.id_ = id_
    self.salary = salary

Это будет полноценным объектом класса Employer? И ещё, можно как-то получить список всех объектов класса, или единственный способ это создать локальную переменную класса, и при инициализации нового объекта её пополнять?

→ Ссылка