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