python - 错误的结果打印到控制台
问题描述
我有以下代码,应该将 3500.0 打印到控制台:
class Employee:
""" Creates an instance of Employee """
def __init__(self, name, annual_salary):
self.name = name
self.annual_salary = annual_salary
def calculate_monthly_salary(self):
return annual_salary / 0.12
class CustomerServiceEmployee(Employee):
""" Creates an instance of CustomerServiceEmployee """
def __init__(self, name, annual_salary, department):
super().__init__(name, annual_salary)
self.department = department
cs_manager = CustomerServiceEmployee("Kelly Johnson", 42000, "Customer Service")
kellys_monthly_salary = Employee.calculate_monthly_salary
print(kellys_monthly_salary)
但它会打印:
<function Employee.calculate_monthly_salary at 0x7fdfb1db31f0>
我被引导相信我的问题在于方法calculate_monthly_salary,但我无法终生解决。有人可以解释一下吗?
解决方案
首先,您已经创建了一个对象CustomerServiceEmployee
并将其存储在cs_manager
. 那么为什么不使用它呢?
kellys_monthly_salary = cs_manager.calculate_monthly_salary()
也line 10
应该有self
。
self.annual_salary
完整代码
class Employee:
""" Creates an instance of Employee """
def __init__(self, name, annual_salary):
self.name = name
self.annual_salary = annual_salary
def calculate_monthly_salary(self):
return self.annual_salary / 0.12
class CustomerServiceEmployee(Employee):
""" Creates an instance of CustomerServiceEmployee """
def __init__(self, name, annual_salary, department):
super().__init__(name, annual_salary)
self.department = department
cs_manager = CustomerServiceEmployee("Kelly Johnson", 42000, "Customer Service")
kellys_monthly_salary = cs_manager.calculate_monthly_salary()
print(kellys_monthly_salary)
推荐阅读
- javascript - 在 Javascript 中使用 Maps 实现二维数组
- sql - 过滤相同的查询 3 次不同的时间。表现?
- python - signal.medfilt2d 得到 ValueError: object too deep for desired array
- machine-learning - 如何在 Imblearn 中获取已创建样本的索引
- reactjs - 如何使用 SVG 代码作为元素的来源?
- java - JPA 查询:java.lang.IllegalArgumentException:提供了至少 1 个参数,但查询中仅存在 0 个参数
- node.js - 操作符集在 mongodb 中不起作用。或任何其他方法将新字段添加到文档中?
- java - 如何使用 RandomAccessFile 恢复中断下载?
- python - 在 s3 中使用带有 put_object() 的 Expires 参数进行上传会在一段时间后从 s3 中删除文件
- angular - 为什么主页选项卡始终处于活动状态?