前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(二十七) 初遇python OOP面向对象编程-继承

(二十七) 初遇python OOP面向对象编程-继承

作者头像
XXXX-user
修改2019-07-30 10:45:55
3900
修改2019-07-30 10:45:55
举报
文章被收录于专栏:不仅仅是python不仅仅是python

各位读者大大们大家好,今天学习python的面向对象编程-继承,并记录学习过程欢迎大家一起交流分享。

新建一个python文件命名为py3_oop4.py,在这个文件中进行操作代码编写:

代码语言:javascript
复制
#面向对象编程
#继承

class Employee:
  raise_amount = 1.04#定义列变量
  def __init__(self,first,last,pay):
    self.first = first
    self.last = last
    self.email = first + '.' + last +'@email.com'
    self.pay = pay

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

  def apply_raise(self):
    self.pay = int(self.pay * self.raise_amount)
#定义子类Developer
#继承父类Employee
class Developer(Employee):
  raise_amount = 1.10
  def __init__(self,first,last,pay,prog_lang):
    #使用super继承父类的__init__方法
    super().__init__(first,last,pay)
    #也可以用
    #Employee.__init__(self,first,last,pay)
    #不建议这种方式
    self.prog_lang = prog_lang

dev_1 = Developer('T','Bag',50000,'Python')
dev_2 = Developer('Mc','User',6000,'Java')
print(dev_1.email)#T.Bag@email.com
print(dev_1.prog_lang)#Python
#使用help查看Developer类的使用
#print(help(dev_1))

#定义一个子类Manager
class Manager(Employee):
  def __init__(self,first,last,pay,employees=None):
    super().__init__(first,last,pay)
    if employees is None:
      employees = []
    else:
      self.employees = employees
  #添加员工
  def add_emp(self,emp):
    if emp not in self.employees:
      self.employees.append(emp)
  #删除员工
  def remove_emp(self,emp):
    if emp  in self.employees:
      self.employees.remove(emp)

  #打印员工全名
  def print_emps(self):
    for emp in self.employees:
      print('---->',emp.fullname())

mgr_1 = Manager('Su','DaQiang',100000,[dev_1])
print(mgr_1.email)#Su.DaQiang@email.com
mgr_1.print_emps()#----> T Bag
mgr_1.add_emp(dev_2)
mgr_1.print_emps()
#----> T Bag
#----> Mc User
mgr_1.remove_emp(dev_2)
mgr_1.print_emps()#----> T Bag

#使用内置方法
#isinstance():判断实例
#issubclass():判断子类
print(isinstance(mgr_1,Manager))
print(isinstance(mgr_1,Employee))
print(isinstance(mgr_1,Developer))
print(issubclass(Developer,Employee))
print(issubclass(Manager,Employee))
print(issubclass(Manager,Developer))

运行结果:

代码语言:javascript
复制
T.Bag@email.com
Python
Su.DaQiang@email.com
----> T Bag
----> T Bag
----> Mc User
----> T Bag
True
True
False
True
True
False

今天初学python的面向对象编程-继承学习就到这里!

关注公号

下面的是我的公众号二维码图片,欢迎关注。

yale记公众号

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yale记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关注公号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档