为什么会输出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()

            

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

因为你调用了两个方法,每个都需要检查名字是否正确