我们彼此奢望 2021-08-18 17:17 采纳率: 100%
浏览 63
已结题

为什么会输出2次,录入正确。或者录入错误


class hrSystem:
    # 创建存储员工名字的变量 name
    name = str(input("请输入姓名"))
    # 创建存储员工工资的变量 salary
    salary = int(input('请输入工资'))
    # 创建存储员工绩效的变量 kpi 
    kpi = int(input('请输入kpi'))

    # 定义录入员工信息的类方法
    @classmethod
    def record(cls, name, salary, kpi):
        cls.name = name
        cls.salary = salary
        cls.kpi = kpi
                   
    # 定义打印员工信息的类方法
    @classmethod
    def print_record(cls):
        if cls.check_name()==1: # 以 cls.check_name() 的返回值(0或1)作为判断条件。
            print(cls.name + '的工作信息如下:')
            print('本月工资:' + str(cls.salary))
            print('本年绩效:' + str(cls.kpi))

    # 定义根据 kpi 评奖的类方法
    @classmethod
    def kpi_reward(cls):
        if cls.check_name()==1:
            if cls.kpi > 95:
                print('恭喜' + cls.name + '拿到明星员工奖杯!')
            elif  80 <= cls.kpi <= 95 :
                print('恭喜' + cls.name + '拿到优秀员工奖杯!')
            else:
                print(cls.name + '这次没有评上奖杯,希望来年努力工作,勇创佳绩!')
                
    # 定义检测名字的类方法    
    @classmethod
    def check_name(cls):
        list=['bob', 'candy', 'jony', 'kelly']
        if cls.name in list:
            print('录入正确~')
            return 1
        else:
            print('录入错误!'+cls.name+'不是本公司员工!') 


hrSystem.print_record()
hrSystem.kpi_reward()

            
  • 写回答

2条回答 默认 最新

  • 八云黧 2021-08-18 17:27
    关注

    因为你print_record()和kpi_reward()都调用了check_name(),而可以看到你写的check_name()只要被调用就一定会有输出

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月26日
  • 已采纳回答 8月18日
  • 修改了问题 8月18日
  • 创建了问题 8月18日

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧