一、面向对象
将编程当成一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况,而编程就是设置事物能够做什么事。
1.类和对象
关系:用类去创建一个对象
类:是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念,不是真实存在的事物
> 特征即是属性
> 行为即是方法
对象:是类创建出来的真实存在的事物
2.定义类
语法:新式类
class 类名():
代码
注:类名要满足标识符命名规则,遵循大驼峰命名规则
语法:经典类(不由任何内置类型派生出的类)
class 类名:
代码
3.创建对象:实例化的过程
语法:对象名=类名()
4.self指的是调用该函数的对象
5.类外面添加对象属性
语法:对象名.属性名 = 值
6.类外面获取对象属性
语法:对象名.属性名
7.类里面获取对象属性
语法:self.属性名
二、魔法方法(_xx_()):指具有特殊功能的函数
1.__init__():初始化对象,在创建一个对象时默认被调用,不需要手动调用
__init__(self)中的self不需要开发者传递,python解释器会自动把当前的对象引用传递过去
2.带参数的__init__():__init__(self,width,height)
3.__str__():当使用print输出对象的时候,默认打印对象的内存地址。若类定义了__str__()方法,就会打印从这个方法中return的数据。
4.__del__():删除对象时,解释器会默认调用__del__()方法
三、面向对象——继承
1.继承:指的是多个类之间的所属关系,即子类默认继承父类的所有属性和方法
注:所有类默认继承object类,object类是顶级类和基类,其他子类叫做派生类
2.单继承:一个类只继承一个父类
3.多继承:一个类同时继承了多个父类
4.子类重写父类同名方法和属性
注:子类和父类具有同名属性和方法,默认使用子类的同名属性和方法
5.子类调用父类的同名方法和属性
6.多层继承
7.super()调用父类方法
注:使用super()可以自动查找父类,调用顺序遵循__mro__类属性的顺序,比较适合单继承使用
四、私有权限
1.定义私有属性和方法:在属性和方法名前面加上两个下划线
注:私有属性和私有方法只能在类里面访问和修改
2.获取和修改私有属性
定义函数名get_xx用来获取私有属性
定义set_xx用来修改私有属性值
五、面向对象三大特性:封装、继承、多态
1.多态:一类事物有多种形态(一个抽象类有多个子类,因而多态的概念依赖于继承),是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果。
2.类属性:类对象所拥有的属性,它被该类的所有实例对象所共有,可以使用类对象和实例对象访问。
修改类属性:类属性只能通过类对象修改,不能通过实例对象修改。若通过实例对象修改属性,表示的是创建了一个实例属性。
3.类方法:需要用装饰器@classmethod来识别其为类方法,第一个参数必须是类对象,一般以cls作为第一个参数。
4.静态方法:需要通过装饰器@staticmethod来修饰,不需要传递类对象好人实例对象,能通过实例对象和类对象访问。
使用场景:方法中不需要实例对象和类对象时,取消不需要参数传递,有利于减少不必要的内存占用和性能消耗。
六、模块和包
1.导入模块
import 模块名
from 模块名 import 功能名
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名
2.制作模块
3.__all__:一个模块文件中有__all__变量,使用from 模块名 import *导入时,只能导入这个列表中的元素。
4.包
导入包:
import 包名.模块名
包名.模块名.目标
from 包名 import*
模块名.目标
注:在__int__.py文件中添加__all__=[],控制允许导入的模块列表
七、异常
异常语法:
try:
可能发生错误的代码
except:
如果出现异常执行的代码
else:
没有异常执行的代码
finally:
无论是否异常都有执行的代码
捕获异常
except 异常类型:
代码
except 异常类型 as xx:
代码
自定义异常
#1.自定义异常类
class 异常类类名(Exception):
代码
#设置抛出异常的描述信息
def __str__(self):
return...
#2.抛出异常
raise 异常类名()
#捕获异常
except Exception...
python 第五部分:面向对象 (学习笔记)
最新推荐文章于 2024-09-09 18:34:56 发布
本文详细记录了Python编程中的面向对象特性,包括类的定义、对象的创建、继承、封装和多态等核心概念,旨在帮助读者深入理解Python的OOP思想。
摘要由CSDN通过智能技术生成