-2
我在python中调用一个类与许多可选参数。我这样构造构造函数的原因是因为我想有两种可能性来创建员工对象的实例。Python构造函数与许多可选参数
def __init__(self, ssn=None, familyssn=None, first_name=None, last_name=None, middle_name=None, email=None, mobile_phone=None, phone=None, department=None, salary=None, employee_list=None):
self.employee_list = employee_list or []
dict_of_emp = {}
list_of_emp = []
self.ssn = ssn
self.familyssn = familyssn
self.first_name = first_name
self.last_name = last_name
self.middle_name = middle_name
self.email = email
self.mobile_phone = mobile_phone
self.phone = phone
self.department = department
self.salary = salary
list_of_emp.append(ssn)
list_of_emp.append(familyssn)
list_of_emp.append(first_name)
list_of_emp.append(last_name)
list_of_emp.append(middle_name)
list_of_emp.append(email)
list_of_emp.append(mobile_phone)
list_of_emp.append(phone)
list_of_emp.append(department)
list_of_emp.append(salary)
#print "listi i smid: ", list_of_emp
Employee.empCount += 1
print "loop through list in constructor: ", employee_list
这是调用构造函数的唯一方法吗?
emp = Employee(None, None, None, None, None, None, None, None, None, None, list_of_list_emp_to_register)
我觉得它相当丑陋的语法!
不,你并不需要所有的'None's。你应该注意关于[keyword arguments]的文档(https://docs.python.org/2/tutorial/controlflow.html#keyword-arguments)。另外,什么是'list_of_list_emp_to_register'? – 2014-09-27 21:30:23
您也可以将您最后一次选择的'employee = None'更改为'employee = []',尽管可能会有一些惊愕与... – Makoto 2014-09-27 21:52:10