文章目录
- 前言
- 一、对象的定义
- 二、类的定义
- 三、子类
- 四、其他数据的定义
- [1]. 示例代码
- [2]. init构造函数
- [3]. 类属性
- [4]. 实例属性
- [5]. 私有成员
- [6]. 受保护成员
- [7]. 特殊成员
- [8]. 公有成员
- 五、常用的特殊成员
- [1]. 构造函数:`__init__()`
- [2]. 析构函数:`__del__()`
- [3]. 静态方法:`__new__()`
- [4]. 其他
前言
此文章主要是记录一下学习class类的使用、创建方法。
一、对象的定义
程序将数据和对数据的操作封装在一起,组成一个相互依存、不可分割的整体,即对象。
Python中的一切内容都可以称为对象,例如数字、字符串、列表、元组、字典、集合、函数、类都是对象。
二、类的定义
对于相同类型的对象进行分类、抽象后,得出共同的特征而形成了类。
三、子类
即在一个类A中嵌套另一个类B,则类B为类A的子类,类A为类B的父类。
四、其他数据的定义
[1]. 示例代码
[2]. init构造函数
属于类的数据成员(即类属性)可以直接在类里,且不在方法的位置定义。
属于类中方法的数据成员(即实例属性)一般是指在函数__init__()中定义的,定义和使用的时候需要以self作为前缀。
[3]. 类属性
类属性就是直接在类中进行定义的,相当于附属于类的变量。
可以通过对象名.类属性名
或是类名.类属性名
对该数据成员进行调用
[4]. 实例属性
在类的方法中进行定义,相当于附属于类的某个方法的变量
只能通过对象名.实例属性名
进行调用。
注:在Python中可以动态地为自定义类和对象增加或删除成员。
[5]. 私有成员
在定义类的成员时,如果成员名是以两个下划线(或两个以上下划线)开头则表示是私有成员。
私有成员在类的外部不能直接访问,需要通过调用对象的公开成员方法来访问,即对象名.私有方法名
。
在对象外部可以通过对象名._类名__私有方法名
的特殊方式访问。
下图中的__pricate()即为私有的成员,在类的
注: 若为两个下划线开头,并以两个下划线结尾的方法不是私有成员。
[6]. 受保护成员
类似于私有成员,但是开头仅有一个下划线,且不能通过from module import *的方式导入到其他程序中
在类的外部不能直接访问,需要通过调用对象的公开成员方法来访问,即对象名.私有方法名
。
[7]. 特殊成员
特殊成员是以两个下划线开头,且以两个下划线结尾。是系统定义的成员。
[8]. 公有成员
除了以上几个成员外就是公有成员了。
公有成员可以在类的内部进行访问,也可以在外部程序使用。
五、常用的特殊成员
[1]. 构造函数:__init__()
创建对象时自动调用
[2]. 析构函数:__del__()
释放对象时自动调用
[3]. 静态方法:__new__()
类的静态方法,用于确定是否要创建对象
[4]. 其他
方法 | 介绍 |
| + |
| - |
| * |
| / |
| // |
| % |
| ** |
| += |
_ | -= |
| 与内置函数abs()对应 |
| 与内置函数bool()对应,要求该方法必须返回布尔值 |
| 与内置函数bytes()对应 |
| 与内置函数complex()对应,要求该方法必须返回复数 |
| 与内置函数dir()对应 |
| 与内置函数divmod()对应 |
| 与内置函数float()对应,要求该方法必须返回实数 |
| 与内置函数hash()对应 |
| 与内置函数int()对应,要求该方法必须返回整数 |
| 与内置函数len()对应 |
| 与内置函数reversed()对应 |
| 返回对象所属的类 |
| 对象所包含的属性与值的字典 |
| 返回该类的所有子类 |