当我们增加加薪金额时,我们是否可以为员工应用getter和setter自动加薪(我们定义了applyraise)

2024-06-26 00:04:17 发布

您现在位置:Python中文网/ 问答频道 /正文

#here is the code

class Employee:

    noofemps = 0
    raiseamount = 1.05

    def __init__(self, first, last, pay):
        self.first = first
        self.last = last
        self.pay = pay
        self.email = first + '.' + last + '@email.com'

        Employee.noofemps += 1

    def fullname(self):
        return '{} {}'.format(self.first.title(), self.last.title())

    def applyraise(self):
        self.pay = int(self.pay * self.raiseamount)

emp1 = Employee('rahul', 'sharma', 30000)
emp2 = Employee('dev', 'verma', 40000)

Tags: theselfheretitleisemaildefemployee
1条回答
网友
1楼 · 发布于 2024-06-26 00:04:17

你可能喜欢这个。我删除电子邮件的简短

class Employee:

    def __init__(self, first, last, pay):
        self.first = first
        self.last = last
        self.pay = pay
        self.__raiseamount = 1.05

    def applyraise(self):
        self.pay = int(self.pay * self.raiseamount)

    @property
    def raiseamount(self):
        return self.__raiseamount

    @raiseamount.setter
    def raiseamount(self, new_raise_amount):
        self.__raiseamount = new_raise_amount
        self.applyraise()

emp2 = Employee('dev', 'verma', 40000)
emp2.applyraise()
print(emp2.pay, emp2.raiseamount)
emp2.raiseamount = 1.1
print(emp2.pay, emp2.raiseamount)

然后就这样出来了

42000 1.05
46200 1.1

通过这种方式,您可以看到,当您设置raiseamount时,不仅加薪金额发生了变化,而且应用加薪也完成了

相关问题 更多 >