python - 如何创建具有此类类型的类的实例?
问题描述
我正在写一种在线商店,并且有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
这种方式的某些实现?
解决方案
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)
推荐阅读
- unity3d - 用于不同纵横比的 Unity3D 画布缩放器
- python - 正弦函数之和 - 类型错误浮点对象不可迭代
- pandas - 如何在具有多索引的熊猫数据框中将列标题样式从水平转换为垂直?
- r - 比较列表中的平均路径长度
- c - 尝试使用 xc16-gcc 编译/链接时出现 Ceedling 错误
- ruby-on-rails - Capistrano - 从 production.rb 文件中读取 rails_env?
- azure-blob-storage - 将 VHD 从一个存储帐户复制到不同租户中的另一个存储帐户
- heroku - 通过 Papertrail Heroku 插件的彩色原木
- elasticsearch - 如何查询没有记录 Elasticsearch
- go - 使用模拟时,有些情况我无法在测试中涵盖