文章目录

  • 前言
  • 一、对象的定义
  • 二、类的定义
  • 三、子类
  • 四、其他数据的定义
  • [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]. 示例代码

class python 中方法互相调用 class python怎么用_内置函数

[2]. init构造函数

属于类的数据成员(即类属性)可以直接在类里,且不在方法的位置定义。
属于类中方法的数据成员(即实例属性)一般是指在函数__init__()中定义的,定义和使用的时候需要以self作为前缀。

[3]. 类属性

类属性就是直接在类中进行定义的,相当于附属于类的变量。
可以通过对象名.类属性名或是类名.类属性名对该数据成员进行调用

[4]. 实例属性

在类的方法中进行定义,相当于附属于类的某个方法的变量
只能通过对象名.实例属性名进行调用。

注:在Python中可以动态地为自定义类和对象增加或删除成员。

[5]. 私有成员

在定义类的成员时,如果成员名是以两个下划线(或两个以上下划线)开头则表示是私有成员。
私有成员在类的外部不能直接访问,需要通过调用对象的公开成员方法来访问,即对象名.私有方法名
在对象外部可以通过对象名._类名__私有方法名的特殊方式访问。

下图中的__pricate()即为私有的成员,在类的

class python 中方法互相调用 class python怎么用_内置函数_02


注: 若为两个下划线开头,并以两个下划线结尾的方法不是私有成员。

[6]. 受保护成员

类似于私有成员,但是开头仅有一个下划线,且不能通过from module import *的方式导入到其他程序中
在类的外部不能直接访问,需要通过调用对象的公开成员方法来访问,即对象名.私有方法名

class python 中方法互相调用 class python怎么用_内置函数_03

[7]. 特殊成员

特殊成员是以两个下划线开头,且以两个下划线结尾。是系统定义的成员。

class python 中方法互相调用 class python怎么用_python_04

[8]. 公有成员

除了以上几个成员外就是公有成员了。
公有成员可以在类的内部进行访问,也可以在外部程序使用。

五、常用的特殊成员

[1]. 构造函数:__init__()

创建对象时自动调用

[2]. 析构函数:__del__()

释放对象时自动调用

[3]. 静态方法:__new__()

类的静态方法,用于确定是否要创建对象

[4]. 其他

方法

介绍

__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__()

返回该类的所有子类