python - 如何让子类中的构造函数继承构造函数或基类?
问题描述
我有以下代码段,其输出如下所示
from abc import ABCMeta, abstractmethod
class AbstractClass(object, metaclass=ABCMeta):
@abstractmethod
def __init__(self, n):
self.n = n
print('the salary information')
class Employee(AbstractClass):
def __init__(self, salary, name):
self.salary = salary
self.name = name
super(AbstractClass,self).__init__()
emp1 = Employee(1000000, "Tom")
print(emp1.salary)
print(emp1.name)
我想让子类,例如Employee
,也可以继承在构造函数中实现的功能AbstractClass
。具体来说,print('the salary information')
我补充说:
super(AbstractClass,self).__init__() # which does not work
解决方案
您需要将 CURRENT 类传递给super
,而不是父类。所以:
super(Employee,self).__init__()
Python 将确定调用哪个父类。
当您这样做时,它将不起作用,因为AbstractClass.__init__
需要您未提供的附加参数。
跟进
已经正确地指出,这就足够了:
super().__init__(0)
推荐阅读
- php - 调用未定义的函数 mysql_select_db()
- cakephp-2.3 - 如何生成类别树,显示技术详细信息表中的相应评级
- javascript - 如何使用 jquery 在 laravel 中单击下拉菜单中获取 li 的值?
- php - 使代码更小的可能性
- angularjs - 将 angularJS 值发送到 MVC 操作
- angular - 角材料2不起作用
- html - Youtube iframe src 自动播放在 Chrome 浏览器中不起作用
- php - 我的简单搜索引擎有问题
- apache-spark - Spark:在每个分区中变得不同
- ios - JusPayExpress 结帐错误 - JSURLNotPassed (102)