【系列教程】Python基础语法(二):面向对象
面向对象编程
面向对象基础
1 | 是一种抽象思想,将特征(属性)和行为(方法)封装为类,用类创建对象 |
类和对象
1 | Python2中类分为:经典类(不由任意内置类型派生出的类,称之为经典类) 和 新式类 |
- self指的是调用该函数的对象
1 | # 1. 定义类 |
添加/获取对象属性
1 | 类外面添加属性:对象名.属性名 = 值 |
魔法方法
1 | __xx__()的函数叫做魔法方法,指的是具有特殊功能的函数。 |
继承
1 | 经典类,不由任意内置类型派生出的类,称之为经典类。 |
1 | 还可以多继承:当一个类有多个父类的时候,默认使用第一个父类的同名属性和方法。 |
1 | 子类重写父类方法/属性:子类和父类具有同名属性和方法,默认使用子类的同名属性和方法 |
1 | 子类调用父类方法/属性:子类和父类具有同名属性和方法,默认使用子类的同名属性和方法 |
多重继承
1 | 子类默认继承都父类的所有属性和方法 |
super()调用父类方法
1 | 使用super() 可以自动查找父类。调用顺序遵循 __mro__ 类属性的顺序。比较适合单继承使用。 |
私有权限
1 | 设置某个实例属性或实例方法不继承给子类。 |
多态
1 | 一个抽象类有多个子类,因而多态的概念依赖于继承 |
类属性和实例属性
1 | * 类属性就是 类对象 所拥有的属性,它被 该类的所有实例对象 所共有。 |
1 | 类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示的是创建了一个实例属性。 |
类方法
1 | 需要用装饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数 |
静态方法
1 | * 需要通过装饰器@staticmethod来进行修饰,静态方法既不需要传递类对象也不需要传递实例对象(形参没有self/cls)。 |
异常
python中的异常是什么
1 | 就是程序出现的错误/BUG,捕获处理可能出现的异常,让程序可以继续执行后面的代码。 |
异常基本使用
1 | try: |
异常传递
自定义异常
1 | raise 异常类对象 |
模块
模块是什么
1 | Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。 |
导入模块的方式
1 | import 模块名 |
- import
from ... import ...
1 | ps: 不能再使用math.sqrt()了.只能 功能名() |
from ... import *
1 | * 代表所有 |
- as
1 | ps: 这里页只能用 别名() 而不能用 功能名() |
制作模块
1 | 在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。也就是说自定义模块名必须要符合标识符命名规则。 |
模块定位顺序
1 | 当导入一个模块,Python解析器对模块位置的搜索顺序是: |
__all__
1 | 如果一个模块文件中有__all__变量,当使用from xxx import *导入时,只能导入这个列表中的元素。 |
包
包是什么
1 | 包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py 文件,那么这个文件夹就称之为包。 |
- 关于模块的命名
1 | 如果模块已数字开头,则只能自己使用,不能给别人用。 |
案例-面向对象版学院管理系统
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 左耳!
评论