A 什么是模块 最高级别的程序组织单元(模块什么都能封装)
模块中,我们不但可以直接存放变量,还能存放函数,还能存放类
定义变量需要用赋值语句, 封装函数需要用def语句, 封装类需要用class语句, 但封装模块不需要任何语句(每一份单独的Python代码文件(后缀名是.py的文件)就是一个单独的模块) —————————————————————————————————————————————— B 封装模块的目的 为了把程序代码和数据存放起来以便再次利用
使用模块主要有两种方式,
一种是自己建立模块并使用,另外一种是使用他人共享的模块 —————————————————————————————————————————————— C 模块相关的常用语句主要有3个
C1 import 语句 目的 并不是运行模块中的执行语句,而是为了利用模块中已经封装好的变量、函数、类
导入模块 要使用模块中的变量、函数、类,需要在使用时加上 模块. 的格式
# 这是主程序main.py import test # 导入test模块 print(test.a) # 使用“模块.变量”调用模块中的变量 test.hi() # 使用“模块.函数()”调用模块中的函数
A = test.Go2() # 使用“变量 = 模块.类()”实例化模块中的类 print(A.a) # 实例化后,不再需要“模块.” A.do2() # 实例化后,不再需要“模块.” ——————————————————————————————————
1 # 【文件:story.py】 2 3 sentence = ‘从前有座山,‘ 4 5 def mountain(): 6 print(‘山里有座庙,‘) 7 8 class Temple: 9 sentence = ‘庙里有个老和尚,‘ 10 def reading(self): 11 print(‘在讲一个长长的故事。‘) 12 13 # 【文件:main.py】 14 15 import story 16 17 for i in range(10): 18 print(story.sentence) 19 story.mountain() 20 A = story.Temple() 21 print(A.sentence) 22 A.reading() 23 print()
C1.1 import…as…
1 import story as s 2 3 for i in range(10): 4 print(s.sentence) 5 s.mountain() 6 A = s.Temple() 7 print(A.sentence) 8 A.reading() 9 print()
C1.2 同时导入多个模块时,可以用逗号隔开。 比如import a,b,c 同时导入“a.py,b.py,c.py”三个文件 ######################################################################## C2 from … import … 语句 从模块中导入一个指定的部分到当前模块
1 # 【文件:test.py】 2 def hi(): 3 print(‘函数“hi”已经运行!‘) 4 5 # 【文件:main.py】 6 from test import hi # 从模块test中导入函数“hi” 7 hi() # 使用函数“hi”时无需加上“模块.” 前缀
C2.1同时导入多个指定内容,也可以用逗号隔开 from xx模块 import a,b,c #################注 意 事 项 ################################## 对于from … import …语句要注意的是,没有被写在import后面的内容,将不会被导入 指定所有内容直接使用时,可以写成【from xx模块 import *】的形式,*代表“模块中所有的变量、函数、类” 一般不要直接使用【from xx模块 import *】,因为块.xx的调用形式能通过阅读代码一眼看出是在调用模块中的变量/函数/方法,而去掉模块.后代码就不是那么直观了 ###################################################################################################################################################
1 【test.py】 2 a = ‘我是模块中的变量a‘ 3 4 def hi(): 5 a = ‘我是函数里的变量a‘ 6 print(‘函数“hi”已经运行!‘) 7 8 class Go2: 9 a = ‘我是类2中的变量a‘ 10 def do2(self): 11 print(‘函数“do2”已经运行!‘) 12 13 【main.py】 14 from test import a,hi,Go2 15 16 print(a) # 打印变量“a” 17 18 hi() # 调用函数“hi” 19 20 A = Go2() # 实例化“Go2”类 #print(Go2.a) 21 print(A.a) # 打印实例属性“a” 22 A.do2() # 调用实例方法“do2” 23 24 我是模块中的变量a 25 函数“hi”已经运行! 26 我是类2中的变量a 27 函数“do2”已经运行!
C3 if __name__ == ‘__main__‘ “程序的入口”
一大堆py文件组成一个程序的时候,为了【指明】某个py文件是程序的运行入口 # 【文件:xx.py】
代码块 ①……
if __name__ == ‘__main__‘: 代码块 ②……
#当xx.py文件被直接运行时,代码块②将被运行”, #xx.py文件作为模块是被其他程序导入时,代码块②不被运行。 ##########################################################################
使用他人的模块 下载安装第三方编写的模块的方式
#需要预装python解释器和pip Windows用户输入pip install + 模块名; 苹果电脑输入:pip3 install + 模块名。
Python的内置模块 内置模块是用Python语言编写的话,就能找到py文件 >>> import random >>> random.__file__ ‘/usr/local/lib/python3.6/random.py‘
如何自学模块 阅读官方文档 直接百度搜索 使用案例做成笔记(函数和类方法有什么作用)
dir()函数查看一个模块,看看它里面有什么变量、函数、类、类方法
import random # 调用random模块 print(dir(random)) #dir(random)