类、继承和多态

概述

Python从设计之初就已经是一门面向对象的语言,面向对象有三大特性:封装、继承和多态
封装:根据职责将属性和方法封装到一个类中
继承:可以实现代码重用,相同的代码不需要重复编写
多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度
教程:
Python面向对象提升与收发邮件01
Python面向对象提升与收发邮件02
Python面向对象提升与收发邮件03

  • 定义:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • __init__(self)方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
  • 语法:
class ClassName:
	...
	...
	...

继承

  • 继承是多态的前提
  • 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。
  • 通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。
    • Dog类是Animal类的子类,Animal类是Dog类的父类,Dog类从Animal类继承
    • Dog类是Animal类的派生类,Animal类是Dog类的基类,Dog类从Animal类派生
  • 继承有单继承和多继承之分
    • 单继承语法:
class 子类(父类):
    pass
  • 多继承语法:
class 子类名(父类名1, 父类名2, ...):
    pass

多态

  • 定义:一种事物的多种形态
    作用:让具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容(功能)的函数。
  • Python中多态的特点:
    1、只关心对象的实例方法是否同名,不关心对象所属的类型;
    2、对象所属的类之间,继承关系可有可无;
    3、多态的好处可以增加代码的外部调用灵活度,让代码更加通用,兼容性比较强;
    4、多态是调用方法的技巧,不会影响到类的内部设计。
  • Java中多态性的表现: 多态性,可以理解为一个事物的多种形态。同样python中也支持多态,但是是有限的的支持多态性,主要是因为python中变量的使用不用声明,所以不存在父类引用指向子类对象的多态体现,同时python不支持重载。在python中 多态的使用不如Java中那么明显,所以python中刻意谈到多态的意义不是特别大。Python中多态使用的并不多。
    参考Python中的多态如何理解?

对象属性和类属性

  • 对象属性需要用对象来调用,在def __init__(self): ...中写
    如:
    def __init__(self, name):  # self 代表的是类的实例
        self.name = name  # 对象属性
  • 类属性需要用类名来调用,类属性是用变量来表示的,此变量称之为类变量。类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 对象属性优先级高于类属性
  • 可以动态的给对象添加对象属性,只针对于当前对象生效,对于类创建的其他对象没有作用
  • 删除对象使用del per.name,再调用会使用同名的类属性(在同名类属性存在的前提下)
  • 尽量不要将类属性和对象属性重名,因为对象属性会屏蔽掉类属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值