Python class:定义类(入门必读)

前面章节中已经提到,类仅仅充当图纸的作用,本身并不能直接拿来用,而只有根据图纸造出的实际物品(对象)才能直接使用。因此,Python程序中类的使用顺序是这样的:

1、创建(定义)类,也就是制作图纸的过程;

2、创建类的实例对象(根据图纸造出实际的物品),通过实例对象实现特定的功能。

本节先教大家如何创建(定义)一个类,如何使用定义好的类将放到后续章节进行讲解。

Python类的定义

Python中定义一个类使用class关键字实现,其基本语法格式如下:

class 类名:
 多个(≥0)类属性...
 多个(≥0)类方法...123复制代码类型:[python]

注意,无论是类属性还是类方法,对于类来说,它们都不是必需的,可以有也可以没有。另外,Python类中属性和方法所在的位置是任意的,即它们之间并没有固定的前后次序。

和变量名一样,类名本质上就是一个标识符,因此我们在给类起名字时,必须让其符合Python的语法。有读者可能会问,用a、b、c作为类的类名可以吗?从Python语法上讲,是完全没有问题的,但作为一名合格的程序员,我们必须还要考虑程序的可读性。

因此,在给类起名字时,最好使用能代表该类功能的单词,例如用“Student”作为学生类的类名;甚至如果必要,可以使用多个单词组合而成,例如初学者定义的第一个类的类名可以是“TheFirstDemo”。

注意,如果由单词构成类名,建议每个单词的首字母大写,其它字母小写。

给类起好名字之后,其后要跟有冒号(:),表示告诉Python解释器,下面要开始设计类的内部功能了,也就是编写类属性和类方法。

其实,类属性指的就是包含在类中的变量;而类方法指的是包含类中的函数。换句话说,类属性和类方法其实分别是包含类中的变量和函数的别称。需要注意的一点是,同属一个类的所有类属性和类方法,要保持统一的缩进格式,通常统一缩进4个空格。

Python变量和函数的使用,前面章节中已经做了详细的介绍,这里不再重复赘述。

通过上面的分析,可以得出这样一个结论,即Python类是由类头(class类名)和类体(统一缩进的变量和函数)构成。例如,下面程序定义一个TheFirstDemo类:

class TheFirstDemo:
 '''这是一个学习Python定义的第一个类'''
 # 下面定义了一个类属性
 add = 'http://c.biancheng.net'
 # 下面定义了一个say方法
 def say(self, content):
  print(content)1234567复制代码类型:[python]

和函数一样,我们也可以为类定义说明文档,其要放到类头之后,类体之前的位置,如上面程序中第二行的字符串,就是TheFirstDemo这个类的说明文档。

另外分析上面的代码可以看到,我们创建了一个名为TheFirstDemo的类,其包含了一个名为add的类属性。注意,根据定义属性位置的不同,在各个类方法之外定义的变量称为类属性或类变量(如add属性),而在类方法中定义的属性称为实例属性(或实例变量)。

同时,TheFirstDemo类中还包含一个say()类方法,细心的读者可能已经看到,该方法包含两个参数,分别是self和content。可以肯定的是,content参数就只是一个普通参数,没有特殊含义,但self比较特殊,并不是普通的参数,它的作用会在后续章节中详细介绍。

更确切地说,say()是一个实例方法,除此之外,Python类中还可以定义类方法和静态方法,这3种类方法的区别和具体用法。

事实上,我们完全可以创建一个没有任何类属性和类方法的类,换句话说,Python允许创建空类,例如:

class Empty:
 pass12复制代码类型:[python]

可以看到,如果一个类没有任何类属性和类方法,那么可以直接用pass关键字作为类体即可。但在实际应用中,很少会创建空类,因为空类没有任何实际意义。

(0)

相关推荐

  • Python教程:面向对象编程的一些知识点总结

    类与实例 类是对象的定义,而实例是"真正的实物",它存放了类中所定义的对象的具体信息. 类.属性和方法命名规范 类名通常由大写字母打头.这是标准惯例,可以帮助你识别类,特别是在实例 ...

  • 第10天:Python 类与对象

    在刚接触编程时,我们就了解到编程界有两大思想:面向过程与面向对象,Python 就是一门面向对象的语言,如果你了解过面向对象的思想,自然就知道面向对象思想包含两个基本概念:类与对象 ,下面我们就一起详 ...

  • Python,你真的会使用 staticmethod 和 classmethod 吗?

    Python,你真的会使用 staticmethod 和 classmethod 吗?

  • Python文件基本操作(入门必读)

    Python中,对文件的操作有很多种,常见的操作包括创建.删除.修改权限.读取.写入等,这些操作可大致分为以下2类: 1.删除.修改权限:作用于文件本身,属于系统级操作. 2.写入.读取:是文件最常用 ...

  • Python循环结构中else用法(入门必读)

    Python 中,无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码. 以 w ...

  • Python创建包,导入包(入门必读)

    <Python包>一节中已经提到,包其实就是文件夹,更确切的说,是一个包含"__init__.py"文件的文件夹.因此,如果我们想手动创建一个包,只需进行以下 2 步操 ...

  • 入门必备!面向对象编程之Python函数与类

    来源:数据STUDIO 作者:云朵君 Python支持大多数面向对象编程技术.在Python中所有东西都是对象,包括类.函数.数和模块.它允许多态性,不只是在类层级之内而且通过采用鸭子类型的方式.任何 ...

  • Python赋值运算符(入门必读)

    赋值运算符用来把右侧的值传递给左侧的变量(或者常量):可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除.函数调用.逻辑运算等. Python中最基本的赋值运算符是等 ...

  • Python try except异常处理详解(入门必读)

    Python中,用tryexcept语句块捕获并处理异常,其基本语法结构如下所示: try: 可能产生异常的代码块except [ (Error1, Error2, ... ) [as e] ]: 处 ...

  • python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略

    python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 python语言学习中的定义类 1.定义类的结构形式 class LSTMRNN(object): # __ini ...

  • 自学中医入门必读(完整版)

    引:小文自2008年成稿以来,各处多有转载,大都只有前两节:至2015年续写第三节后,仍未免有憾.直至今日(2017年11月8日),第四节完成,全篇方得始终.再将全文修订,增删文字,令与时进,令文义通 ...

  • 爱中医的进来,自学中医入门必读(完整版)

    转自原创:天下无疾 引:小文自2008年成稿以来,各处多有转载,大都只有前两节:至2015年续写第三节后,仍未免有憾.直至今日(2017年11月8日),第四节完成,全篇方得始终.再将全文修订,增删文字 ...