【发布时间】:2019-11-14 14:02:20
【问题描述】:
我有一个员工类,我想用两种不同的方式填写它,并且想知道通过构造函数重载来做到这一点
class Employee:
def __init__(self, first, last, pay):
self.first = first
self.last = last
self.pay = pay
def __init__(self, data):
(self.first, self.last, self.pay) = data
这是因为,要么我必须像
这样初始化类Employee('John','Smith',3000)
或者我想通过传递一个元组来初始化类
data = ('John','Smith',3000)
Employee(data)
【问题讨论】:
-
Python 中没有构造函数/方法/函数重载。您可以使用可选的关键字参数,也可以根据参数的类型决定要做什么。但是,对于这种特定情况,您可以只执行
Employee(*data),将元组解包为各个参数。 -
如果您使用
Employee(*data)而不是Employee(data),则可以使用单个直接构造函数。
标签: python constructor overloading