- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 类与模块;3.1 类和对象;3.1.1 类的格式与创建对象
1. 类的一般形式
在类声明中,class是声明类的关键字,表示类声明的开始,类声明后面跟着类名,按习惯类名要用大写字母开头,并且类名不能用阿拉伯数字开头。
类中的self在调用时代表类的实例,与c++或Java中的this作用类似。 ;2. 创建对象
类在使用时,必须创建类的对象,再通过类的对象来操作类中的成员变量和成员方法。
创建类对象的格式为:
对象名 = 类名()
3. 调用成员方法
调用类的方法时,需要通过类对象调用,其调用格式如下:
对象名.方法名(self)
;【例3-1】编写一个计算二数之和的类。; 4. 类的公有成员和私有成员
在Python程序中定义的成员变量和方法默认都是公有成员,类之外的任何代码都可以随意访问这些成员。如果在成员变量和方法名之前加上两个下划线“_ _”作前缀,则该变量或方法就是类的私有成员。私有成员只能在类的内部调用,类外的任何代码都无法访问这些成员。
; 【例3-2】私有成员示例。
;5. 类的构造方法
在Python中,类的构造方法为 _ _init_ _ ( ),其中方法名开始和结束的下划线是双下划线。构造方法属于对象,每个对象都有自己的构造方法。
如果一个类在程序中没有定义_ _init_ _ ( )方法,则系统会自动建立一个方法体为空的_ _init_ _ ( )方法。
如果一个类的构造方法带有参数,则在创建类对象时需要赋实参给对象。
在程序运行时,构造方法在创建对象时由系统自动调用,不需要用调用方法的语句显式调用。
; 【例3-3】设计一个类Person。该类有Name(姓名)、Age(年龄)两个变量,可以从键盘输入雇员姓名、年龄等信息。
;6. 析构方法
在Python中,析构方法为 _ _del_ _ ( ),其中开始和结束的下划线是双下划线。析构方法用于释放对象所占用的资源,在Python系统销毁对象之前自动执行。析构方法属于对象,每个对象都有自己的析构方法。如果类中没有定义_ _del_ _ ( )方法,则系统会自动提供默认的析构方法。
;【例3-4】析构方法示例。;3.1.2 类的继承;2. 类的多继承;【例3-6】多继承示例。;3.1.3 运算符重载;3.2 模块;3.2.1 模块的导入;2. 用 from .... import ....形式导入模块
用 from .... import ....导入模块的一般形式为:
from 模块名 import 函数名或变量名
?
比如要引用模块math中的sqrt()函数,可以用
from math import sqrt()
语句来导入。
在调用from .... import ....导入模块的函数时,直接使用函数名来调用模块中的函数,而不需要在函数的前面加上模块名。;3. 导入模块的顺序 当需要导入多个模块时,应按照下面的顺序依次导入模块:(1)导入 Python系统的标准库模块,如os、sys等;(2)导入第三方扩展库模块,如pygame、mp3play等;(3)导入自己定义和开发的本地模块。; 3.2.2 自定义模块
在Python中,每个包含有函数的Python文件都可以作为一个模块来使用,其模块名就是文件名。
【例3-8】自定义模块使用示例。
(1)设有Python文件hello.py,其中包含hh()函数,代码如下:
;(2)调用模块hello中hh()函数的程序ex3_8.py代码如下:;【例3-9】 编写一个计算二数和的模块,再在另一个程序中调用该模块。
(1)编写模块代码,其中包含有计算二数之和的函数sum(),保存为ex3_9_1.py。
(2)编写调用模块程序ex3_9_2.py,其代码如下:
;3.2.3 常用标准库模块;2. 线程与进程模块
该部分的模块主要是Python 系统所支持的线程与进程方面的函数。
(1)threading 模块
threading 模块为线程提供了一个高级接口, 只需要继承 Thread 类, 定义好 run 方法, 就可以创建一个新的线程. 使用时首先创建该类的一个或多个实例, 然后调用 start 方法. 这样每个实例的 run 方法都会运行在它自己的线程里。
(2)Queue 模块
Queue 模块提供了一个线程安全的队列 (queue) 实现。通过它可以在多个线程里安全地访问同一个对象。
?
(3)commands 模块
commands 模块是一些在Unix系统中用于执
文档评论(0)