首页 > Python > Python类和对象
Python class:定义类(入门必读)
前面章节中已经提到,类仅仅充当图纸的作用,本身并不能直接拿来用,而只有根据图纸造出的实际物品(对象)才能直接使用。因此,Python 程序中类的使用顺序是这样的:
本节先教大家如何创建(定义)一个类,如何使用定义好的类将放到后续章节进行讲解。
和变量名一样,类名本质上就是一个标识符,因此我们在给类起名字时,必须让其符合 Python 的语法。有读者可能会问,用 a、b、c 作为类的类名可以吗?从 Python 语法上讲,是完全没有问题的,但作为一名合格的程序员,我们必须还要考虑程序的可读性。
因此,在给类起名字时,最好使用能代表该类功能的单词,例如用“Student”作为学生类的类名;甚至如果必要,可以使用多个单词组合而成,例如初学者定义的第一个类的类名可以是“TheFirstDemo”。
其实,类属性指的就是包含在类中的变量;而类方法指的是包含类中的函数。换句话说,类属性和类方法其实分别是包含类中的变量和函数的别称。需要注意的一点是,同属一个类的所有类属性和类方法,要保持统一的缩进格式,通常统一缩进 4 个空格。
另外分析上面的代码可以看到,我们创建了一个名为 TheFirstDemo 的类,其包含了一个名为 add 的类属性。注意,根据定义属性位置的不同,在各个类方法之外定义的变量称为类属性或类变量(如 add 属性),而在类方法中定义的属性称为实例属性(或实例变量),它们的区别和用法可阅读《Python类变量和实例变量》一节。
同时,TheFirstDemo 类中还包含一个 say() 类方法,细心的读者可能已经看到,该方法包含两个参数,分别是 self 和 content。可以肯定的是,content 参数就只是一个普通参数,没有特殊含义,但 self 比较特殊,并不是普通的参数,它的作用会在后续章节中详细介绍。
- 创建(定义)类,也就是制作图纸的过程;
- 创建类的实例对象(根据图纸造出实际的物品),通过实例对象实现特定的功能。
本节先教大家如何创建(定义)一个类,如何使用定义好的类将放到后续章节进行讲解。
Python类的定义
Python 中定义一个类使用 class 关键字实现,其基本语法格式如下:
class 类名:
多个(≥0)类属性...
多个(≥0)类方法...
和变量名一样,类名本质上就是一个标识符,因此我们在给类起名字时,必须让其符合 Python 的语法。有读者可能会问,用 a、b、c 作为类的类名可以吗?从 Python 语法上讲,是完全没有问题的,但作为一名合格的程序员,我们必须还要考虑程序的可读性。
因此,在给类起名字时,最好使用能代表该类功能的单词,例如用“Student”作为学生类的类名;甚至如果必要,可以使用多个单词组合而成,例如初学者定义的第一个类的类名可以是“TheFirstDemo”。
给类起好名字之后,其后要跟有冒号(:),表示告诉 Python 解释器,下面要开始设计类的内部功能了,也就是编写类属性和类方法。注意,如果由单词构成类名,建议每个单词的首字母大写,其它字母小写。
其实,类属性指的就是包含在类中的变量;而类方法指的是包含类中的函数。换句话说,类属性和类方法其实分别是包含类中的变量和函数的别称。需要注意的一点是,同属一个类的所有类属性和类方法,要保持统一的缩进格式,通常统一缩进 4 个空格。
通过上面的分析,可以得出这样一个结论,即 Python 类是由类头(class 类名)和类体(统一缩进的变量和函数)构成。例如,下面程序定义一个 TheFirstDemo 类:Python 变量和函数的使用,前面章节中已经做了详细的介绍,这里不再重复赘述。
class TheFirstDemo: '''这是一个学习Python定义的第一个类''' # 下面定义了一个类属性 add = 'https://www.xinbaoku.com' # 下面定义了一个say方法 def say(self, content): print(content)和函数一样,我们也可以为类定义说明文档,其要放到类头之后,类体之前的位置,如上面程序中第二行的字符串,就是 TheFirstDemo 这个类的说明文档。
另外分析上面的代码可以看到,我们创建了一个名为 TheFirstDemo 的类,其包含了一个名为 add 的类属性。注意,根据定义属性位置的不同,在各个类方法之外定义的变量称为类属性或类变量(如 add 属性),而在类方法中定义的属性称为实例属性(或实例变量),它们的区别和用法可阅读《Python类变量和实例变量》一节。
同时,TheFirstDemo 类中还包含一个 say() 类方法,细心的读者可能已经看到,该方法包含两个参数,分别是 self 和 content。可以肯定的是,content 参数就只是一个普通参数,没有特殊含义,但 self 比较特殊,并不是普通的参数,它的作用会在后续章节中详细介绍。
事实上,我们完全可以创建一个没有任何类属性和类方法的类,换句话说,Python 允许创建空类,例如:更确切地说,say() 是一个实例方法,除此之外,Python 类中还可以定义类方法和静态方法,这 3 种类方法的区别和具体用法,可阅读《Python实例方法、静态方法和类方法》。
class Empty: pass可以看到,如果一个类没有任何类属性和类方法,那么可以直接用 pass 关键字作为类体即可。但在实际应用中,很少会创建空类,因为空类没有任何实际意义。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算