Python基础学习笔记——定义一个雇员类Employee(属性、运算符重载、自定义id、判断薪水)

此问题来自高淇老师讲义课后习题:

问题描述:

定义一个 Employee 雇员类,要求如下:
(1) 属性有:id、name、salary
(2) 运算符重载+:实现两个对象相加时,默认返回他们的薪水和
(3) 构造方法要求:输入 name、salary,不输入 id。id 采用自增的方式,从 1000 开
始自增,第一个新增对象是 1001,第二个新增对象是 1002。
(4) 根据 salary 属性,使用@property 设置属性的 get 和 set 方法。set 方法要求输
入:1000-50000 范围的数字。

代码:

class Employee:
    __init_flag = True

    # 定义实例属性
    def __init__(self, ID, name, salary):
        self.id = ID
        self.name = name
        self.salary = salary

    def __add__(self, other):  # 这里重载了加号的功能__add__
        if isinstance(other, Employee):
            return self.salary + other.salary
        else:
            return "不是同类对象,不能相加"

    def input(self):  # 定义自增方式
        d = 1000
        if self.id == ' ':  # 当不输入id时
            if Employee.__init_flag:  # 第一次给无id员工赋值id
                self.id = 1000
                Employee.__init_flag = False
                return self.id

            else:  # 第二次及以后给无id员工赋值
                d = d + 1
                self.id = d
                return self.id


        else:  # 当输入id时
            return self.id

    def get_salary(self):
        return self.salary

    def set_salary(self):
        if 1000 < self.salary < 50000:
            pass
        else:
            print("录入错误!薪水在1000-50000这个范围")


p1 = Employee(1000, "张三", 3000)
p2 = Employee(1001, "李四", 3500)
print(p1 + p2)  # 两个对象相加时,默认返回他们的薪水和

p3 = Employee(' ', "王五", 4000)
p3.input()
print(p3.id)  # 验证自增方式

p4 = Employee(' ', "赵六", 4500)
p4.input()
print(p4.id)  # 验证自增方式

p5 = Employee('1006', "赵六", -5000)
p5.input()
p5.set_salary()  # 验证薪水范围是否正常

程序结果:

在这里插入图片描述

程序还有需要完善的地方,欢迎大家多多交流

  • 10
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值