【发布时间】:2022-07-04 22:36:18
【问题描述】:
我正在为我的 OOP 类做一个作业,我们在其中创建一个人,然后创建该类的子类,例如员工。在我的以下代码中,当我尝试使用我的 displayData 函数在我的类中打印一些属性或变量时,我总是收到一条“无”消息,它出现在我的对象的所有属性或变量都被打印后,有人知道为什么吗?。
from dataclasses import dataclass
@dataclass
class Person:
FirstName : str
LastName : str
Age : int
Address : str
ContactNumber : int
@dataclass
class Employee(Person):
EmployeeID : str
OrganizationName : str
Position : str
@dataclass
class CommissionEmployee(Employee):
commissionRate : float
def calculateCommission(self):
gross_sale = input("Please enter the gross sale amount: ")
totalEarning = float(gross_sale) * (1 + self.commissionRate)
return totalEarning
def displayData(self):
print("First Name:", self.FirstName)
print("Last Name:", self.LastName)
print("Age:", self.Age)
print("Address:", self.Address)
print("Contact Number:", self.ContactNumber)
print("Employee ID:", self.EmployeeID)
print("Organization Name:", self.OrganizationName)
print("Position:", self.Position)
print("Commission Rate:", self.commissionRate)
print("Total Earnings:", "${:,.2f}".format(self.calculateCommission()))
@dataclass
class SalariedEmployee(Employee):
baseSalary : float
def CalculateNetSalary(self):
provisionalTax = 0.13 * self.baseSalary
insurance = 0.01 * self.baseSalary
fedTax = 0.03 * self.baseSalary
NetSalary = self.baseSalary - provisionalTax - insurance - fedTax
return "${:,.2f}".format(NetSalary)
def displayData(self):
print("First Name:", self.FirstName)
print("Last Name:", self.LastName)
print("Age:", self.Age)
print("Address:", self.Address)
print("Contact Number:", self.ContactNumber)
print("Employee ID:", self.EmployeeID)
print("Organization Name:", self.OrganizationName)
print("Position:", self.Position)
print("Base Salary:", "${:,.2f}".format(self.baseSalary))
print("Net Salary:", self.CalculateNetSalary())
John = SalariedEmployee("John", "Smith", 21, "21 Cool Beans Dr", 123456789, "201", "Tesla", "CEO", 100.0)
print (John.displayData())
【问题讨论】:
-
SalariedEmployee.displayData()不返回任何内容,对吧?它没有return whatever声明。因此,它会自动返回None。
标签: python oop python-dataclasses