- 面向对象编程(Object Oriented Programming,简称 OOP)是一种程序设计思想,是将对象视为程序的组成单元。
- 常用术语
名词 | 解释 |
---|
类(class) | 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 |
方法 | 类中定义的函数。包含实例方法,类方法,静态方法。 |
类变量(属性) | 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 |
数据成员 | 类变量或者实例变量用于处理类及其实例对象的相关的数据。 |
方法重写 | 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 |
局部变量 | 定义在方法中的变量,只作用于当前实例的类。 |
实例变量 | 在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。 |
继承 | 即一个派生类(derived class)继承基类(base class)的属性和方法。继承也允许把一个派生类的对象作为一个基类对象对待。 |
实例化 | 创建一个类的实例,类的具体对象。 |
对象 | 通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。 |
- 类的命名遵循大驼峰命名法:
- 每个单词的第一个字母都大写,例如爬取
GitHub
网站仓库的类可以起名 GithubRepoSpider
- 私有类使用一个下划线开头,例如私有用户数据类
_UserData
- 特殊方法
特殊方法 | 用途 |
---|
__init__ | 构造方法,初始化实例 |
__repr__ | 格式化实例的打印样式 |
__new__ | 创建实例时执行 |
__del__ | 析构方法,在删除时会被调用 |
__slots__ | 限制绑定属性 |
__call__ | 使实例变成可调用对象 |
- 私有属性是指不希望在类的外部被直接调用的属性。单下划线开头是约定俗成的写法,不是语法规定,例如
_password
。以两个下划线 __
开头的写法例如 __name
,是标准的私有属性,类外部不可以直接调用,但也有其他办法调用。
- 类的三大特征是 封装、继承 和 多态。
- 封装 就是用类将数据和基于数据的操作封装在一起,隐藏内部数据,对外只提供公共的访问接口。
- 继承可以使子类具有父类的属性和方法,也可以重新定义和追加属性和方法。
- 多态是指如果父类和子类存在相同的方法,那么子类对象在调用该方法时,实际调用的就是子类的方法。
- 多重继承时,从多个父类继承属性时遵循深度优先、从左至右的规则。
super()
函数是用于调用父类(超类)的一个方法。
- 装饰器 是一种高阶函数,将函数作为高阶函数的参数或返回值。
property
装饰器可以使实例的方法作为属性使用。 classmethod
装饰器可以创建类属性和类方法,类方法的第一个参数传入的是类对象,需要使用 cls
。staticmethod
装饰器可以在类的内部创建一个静态方法,类和类的实例均可调用它。
- 实例方法、类方法、静态方法。区别如下:
分类 | 第一个参数强制为 | 在定义方法时可以引用 |
---|
实例方法 | 实例对象 self | 类属性、实例属性、类方法、实例方法 |
类方法 | 类对象 cls | 类属性、类方法 |
静态方法 | 无 | 类属性 |
摘自蓝桥,感谢蓝桥提供的学习平台!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。