You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用Employee类计算月薪方法输出函数地址问题如何解决

问题分析与修复

你的代码存在3处逻辑错误,逐一说明如下:

  • 错误1:未正确调用实例方法
    代码中kellys_monthly_salary = Employee.calculate_monthly_salary只是把类的方法对象直接赋值给了变量,没有执行方法调用,所以打印结果是方法的内存地址而非计算结果。实例方法需要绑定实例对象调用,不能直接用类名调用(除非手动传入实例参数)。
  • 错误2:方法内未通过self引用实例属性
    calculate_monthly_salary方法中直接写annual_salary,Python会将其识别为未定义的局部变量,运行时会抛出NameError,实例属性必须加self.前缀访问。
  • 错误3:月薪计算公式错误
    年薪转月薪需要除以12,你写的除以0.12会得到远大于预期的结果,和你预期的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):
        # 加self访问实例属性,除以12计算月薪
        return self.annual_salary / 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)

运行结果

3500.0

内容的提问来源于stack exchange,提问作者Jose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 02:06:04