魅族|站长在线Python教程:Python中类定义详解

魅族|站长在线Python教程:Python中类定义详解

导读:欢迎你来到站长在线的站长学堂学习Python知识 , 本文学习的是《Python中类定义详解》 。

我们在上一节内容《Python中面向对象相关概述详解》中学习过 , 类是具有相同属性和方法的对象的集合 。
在面向对象编程(程序设计)过程中有两个重要概念:类(class)和对象(Object , 也被称为实例 , Instance) 。 在使用类的时候 , 是先定义类 , 然后创建类的对象(实例) , 通过类的实例可以访问类中的属性和方法 。
再借助上节课的人类和人类对象的关系示意图(下图) , 我们说的类(如:人类)是一批对象(如:一个正在码字的程序员)的抽象 , 对象是具体存在的实体 。

【魅族|站长在线Python教程:Python中类定义详解】


在Python中 , 类的定义使用class关键字来实现 , 语法如下:
class ClassName:
<statement-1>
.
.
.
<statement-N>

其中 , 相关参数说明如下:
ClassName:用于指定类名 , 一般使用大写字母开头 , 如果类名中包括多个单词 , 每个单词的首字母也大写 , 单词与单词之间不要使用任何分隔符 。 这种命名方法也称为“驼峰式命名法” , 这是惯例 。 当然 , 也可根据自己的习惯命名 , 但是一般推荐按照惯例来命名 。

注意:使用abc这样的简单字母来定义类名 , 从语法上面来讲没有错误 , 但是作为一个合格的程序员 , 必须要考虑 , 程序的可读性 。
<statement-1> . . . <statement-N>:用于类体 , 主要由类变量(或类成员)、方法和属性等定义语句组成 。
如果在定义类时 , 没想好类的具体功能 , 也可以在类体中直接使用pass语句代替 。 如:
class Empty:
pass

从上面定义来看 , Python 的类定义有点像函数定义 , 都是以冒号(:)作为类体的开始 , 以统一缩进的部分作为类体的 。 区别只是函数定义使用 def 关键字 , 而类定义则使用 class 关键字 。

类定义与函数定义 (def 语句) 一样必须被执行才会起作用 。(你可以尝试将类定义放在 if 语句的一个分支或是函数的内部 。 )

当进入类定义时 , 将创建一个新的命名空间 , 并将其用作局部作用域 --- 因此 , 所有对局部变量的赋值都是在这个新命名空间之内 。特别的 , 函数定义会绑定到这里的新函数名称 。
当(从结尾处)正常离开类定义时 , 将创建一个 类对象 。这基本上是一个包围在类定义所创建命名空间内容周围的包装器;我们将在下一节了解有关类对象的更多信息 。原始的(在进入类定义之前起作用的)局部作用域将重新生效 , 类对象将在这里被绑定到类定义头所给出的类名称 (在这个示例中为 ClassName) 。