Python OOP-继承

这篇博客展示了如何使用Python实现面向对象编程,包括创建`Employee`基类,`Developer`和`Manager`子类。`Employee`类包含姓名、邮箱和薪资等属性,`Developer`类增加了专业语言属性,而`Manager`类则拥有员工列表,并提供了添加、删除和打印员工的方法。博客还探讨了类变量、实例方法以及继承的概念。
摘要由CSDN通过智能技术生成
class Employee:#类 模板

    raise_count = 1.04 #类变量 每个实例共享的变量
    num_of_emps = 0

    def __init__(self, first, last, pay):#self 就是当前构建实例的自己   1实例变量   2构造方法 3自动调用 4 self当前实例 5 初始化要用的参数 用于后面的方法
        self.first = first
        self.last = last
        self.email = first + '.' +last + '@c.com'
        self.pay = pay
        Employee.num_of_emps += 1

    def fullname(self): #当前实例方法
        return '{}{}'.format(self.first,self.last)

    def apply_raise(self):
        self.pay =int(float(self.pay) * self.raise_count)

class Developer(Employee):#继承类 子类 重写属性  重写方法
     raise_count = 1.5

     def __init__(self,first,last,pay,pro_lang):
         super().__init__(first,last,pay)#super 就是调以前的父类 重用父类的init
         print("hello")
         self.pro_lang = pro_lang

class Manager(Employee):
    def __init__(self,first,last,pay,employees= None):
        super().__init__(first,last,pay)
        if employees is None:
            employees = []
        else:
            self.employess =employees

    def add_emp(self,emp):
        if emp not in self.employess:
            self.employess.append(emp)
    def remove_emp(self,emp):
        if emp in self.employess:
            self.employess.remove(emp)
    def print_emp(self):
        for emp in self.employess:
             print(emp.fullname())


dev1 = Developer('John','ss','20000','python')
dev2 = Employee('Bohn','ss','50000')

# print(dev1.first,dev1.last,dev1.email,dev1.pay,dev1.pro_lang)
# # print(help(Developer))
# # dev1.apply_raise()
# # print(dev1.pay)
# # dev2.apply_raise()
# # print(dev2.pay)
# mgr_1 = Manager('s','z',9000,[dev1])
# print(mgr_1.first,mgr_1.last,mgr_1.pay,mgr_1.email)
#
# mgr_1.print_emp()
# mgr_1.add_emp(dev2)
# mgr_1.print_emp()
# mgr_1.remove_emp(dev1)
# mgr_1.print_emp()
#
# print(isinstance(mgr_1,Employee))# 什么是什么的实例 判断
# print(issubclass(Manager, Employee))#继承
# print(issubclass(Manager, Developer))#继承
# print()

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值