首页 > 编程语言 >Python面向对象编程-学习笔记(二)

Python面向对象编程-学习笔记(二)

时间:2023-07-29 16:46:04浏览次数:40  
标签:__ Python self 笔记 mgr emp 面向对象编程 print employees

5.类的继承

class Employee:
     raise_amount =1.04
      def __init__(self, first, last, pay):
          self.first = first
          self.last = last
          self.pay= pay
          self.email = first + '.' + last + '@company.com'

class Developer(Employee):
      raise_amount=1.05
    def __init__(self,first,last,pay,language):
      super().__init__(first,last,pay)# 沿用父类的初始化方法
      self.language=language #新增的初始化方法 print(help(Developer)) #打印本类的属性,包括 继承顺序、类中的属性和方法等
              #如果没有自身的init方法,则实例化时会调用“距离”最近的父类的构造方法
dev_1=Developer('Corey','Schafer',50000,'Java')
dev_1=Developer('Oraly','Delphy',50000,'Python')

class manager(Employee):
   def __init__(self,first,last,pay,employees=None):
      super().__init__(first,last,pay)
      if employees is None:
        self.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.GetFullName())

mgr_1=Manager('Whill','Smith',80000,[dev_1])
print(mgr_1.email)
mgr_1.add_emp(dev_2)
print(mgr_1.print_emps())
mgr_1.remove(dev_1)
print(mgr_1.print_emps())

print(isinstance(mgr_1,Manager)) # True 判断对象是否为特定类的实例
print(isinstance(mgr_1,Employee)) # True
print(isinstance(mgr_1,Developer)) # False 
print(issubclass(Manager,Employee)) # True 判断第一个参数类是否为第二个类的子类
 

 

标签:__,Python,self,笔记,mgr,emp,面向对象编程,print,employees
From: https://www.cnblogs.com/Nikole/p/17590045.html

相关文章

  • 面向对象编程的 SOLID 原则 - 开闭原则
    开闭原则开闭原则要求“class应该对扩展开放对修改关闭”。修改意味着修改存在class的代码,扩展意味着添加新的功能。这个原则想要表达的是:我们应该能在不动class已经存在代码的前提下添加新的功能。这是因为当我们修改存在的代码时,我们就面临着创建潜在bug的风险。因此,......
  • Python全局变量和局部变量
    目录1.python的全局变量和局部变量第一种:global定义全局变量在自定义函数内部第二种:全局定义全局变量,并给其赋值2.python类中public,protected,private定义方式3.python中类的实例化1.python的全局变量和局部变量全局变量定义:在函数外部定义的变量。所有函数内部都可以使用......
  • 相对路径以及python引用
    /当前工作目录所在的最顶级目录,即根目录,根目录是相对于其他子目录来说的./当前工作目录('./img/demo.jpg')../当前工作目录上一级目录(当前目录的父级目录)此时的img文件在myblog文件夹内python文件的引用问题fromPStope_Class.WorKFace.TYl_BeamUnitimportTYl_Beam......
  • Hyper-V Best Practices读书笔记
    1.安装Hyper-V:Install-WindowsFeature-Namehyper-v,Multipath-IO-IncludeAllSubFeature-IncludeManagementTools-RestartNew-VMSwitch-NameSW-1G-NetAdapterName"LocalAreaConnection2"IfyouhaveonlyoneNIC,runthefollowingcommand:New-VMSwit......
  • python requests.session() 不使用session的cookie 自定义cookie
      req=requests.Request('GET',"https://xxxx.gif",headers=headers)#清空cookiesreq.cookies={}#发送请求session.send(req.prepare(),timeout=30,verify=Fa......
  • 小鱼书学习笔记
    第3章神经网络将输入信号的总和转换为输出信号,这种函数一般称为激活函数(activationfunction)激活函数的作用在于决定如何来激活输入信号的总和。本书在使用“感知机”一词时,没有严格统一它所指的算法。一般而言,“朴素感知机”是指单层网络,指的是激活函数使用了阶跃函数A的模型。......
  • python的netmiko库备份华为交换机配置
    环境背景可管理华为交换机若干,python3运维安全需求,定期备份网络设备配置步骤安装netmikopip3isntallnetmiko注意netmiko默认的连接超时时间只有10秒钟,需要改conn_timeout大于等于60s。2.编写python脚本fromnetmikoimportConnectHandlerimporttimeimportos#......
  • React18学习笔记
    目录使用Create-React-App创建项目使用Vite创建项目JSX语法基础标签属性事件插入JS变量和表达式条件判断循环实践:列表页组件Props组件通讯HooksuseState基本使用特点使用useState实现问卷的增删改使用immer解决不可变数据问题useEffectuseRefuseMemo......
  • c语言学习笔记5
    内存空间在C语言中,内存空间可以被划分为以下几个部分:1.栈(Stack):这部分内存由编译器自动分配和释放,用于存放函数的参数值,局部变量等。其操作方式类似于数据结构中的堆栈,先进后出。2.堆(Heap):堆是用于动态内存分配的。与栈不同,堆的分配和释放必须由程序员自己操作。在C语言中,使用m......
  • 线性基学习笔记
    线性基简介线性基是一种擅长处理异或问题的数据结构.设值域为\([1,N]\),就可以用一个长度为$⌈\log_2{N}⌉$的数组来描述一个线性基。特别地,线性基第\(i\)位上的数二进制下最高位也为第\(i\)位。一个线性基满足,对于它所表示的所有数的集合\(S\),\(S\)中任意多个数异或所得的......