首页 > 解决方案 > 如何创建具有此类类型的类的实例?

问题描述

我正在写一种在线商店,并且有Admin我想添加新员工的课程:

class Admin():
    __employees = []
    def __add_employee(self, name, surname, salary, employee_type):
        new_employee = Employee(name, surname, salary)
        self.__employees.append(new_employee)

employee_type参数中,我想传递Employee抽象类实现之一(Driver,Consultant等)。但在上面的清单中,它只创建Employee类实例。

class Driver(Employee):
    pass


class Consultant(Employee):
    pass

如何添加Employee这种方式的某些实现?

标签: pythonpython-3.x

解决方案


class Admin():
        __employees = []
        def __add_employee(self, name, surname, salary, post):
            if not issubclass(post, Employee):
                raise ValueError("Invalid post")

            new_employee = post(name, surname, salary)
            self.__employees.append(new_employee)

您可以将类对象本身作为__add_employee方法的参数发送

__add_employee("john", "10000", Driver)

推荐阅读