【发布时间】:2021-08-05 16:58:34
【问题描述】:
我对编程很陌生,正在寻找一些帮助来改进一段代码。我的教程工作取得了理想的结果,但做得并不好。
class Person:
def __init__(self, first_name, last_name, date_of_birth):
self.first_name = first_name
self.last_name = last_name
self.date_of_birth = date_of_birth
def get_details(self):
return(f"Name: {self.first_name} {self.last_name}\nDate of Birth: {self.date_of_birth}")
class Worker:
def__init__(self, tax_file_number, super_number):
self.tax_file_number = tax_file_number
self.super_number = super_number
def get_info(self):
return(f"TFN: {self.tax_file_number}\nSuper: {self.super_number}")
class Employee(Person, Worker):
def __init__(self, first_name, last_name, date_of_birth, tax_file_number, super_number, employee_id, position):
Person.__init__(self, first_name, last_name, date_of_birth)
Worker.__init__(self, tax_file_number, super_number)
self.employee_id = employee_id
self.position = position
def get_info(self):
return(f"Employee ID: {self.employee_id}\nPosition: {self.position}")
def get_details(self):
person = (Person.get_details(self)) + "\n" + (Employee.get_info(self)) + "\n" + (Worker.get_info(self))
return person
p = Person("Kim", "White", "12/08/2020")
print(p.get_details())
print()
w = Worker(4556655, 567)
print(w.get_info())
print()
e = Employee('Kim', 'White', '12/08/2020', 4556655, 567, 1121, 'Developer')
print(e.get_details())
对我来说问题是具有多重继承的员工类,
我真的需要像这样初始化所有属性吗?我认为使用继承会从其他类中获取它,
但这就是我设法让它工作的方法。
我试图让它更像,
class Employee(Person, Worker):
def init(self, employee_id, position):
self.employee_id = employee_id
self.position = position
#*Line of code to make it so the rest of the attributes come in here #
【问题讨论】:
-
您当前的代码阅读起来很痛苦,能否请您正确格式化?
标签: python oop inheritance multiple-inheritance