[TOC]
15.Python 模块
描述:模块就是更高级的封装,而模块就是程序;实际就是将一个个python文件编写的函数导入到其他的py文件中进行调用;
前面知识点:
- 容器(数据的封装),
- 函数(语句的封装),
- 类(方法和属性的封装)
关联知识点:
- 命名空间:指定该模块名和模块内的方法名称进行拼接如hello.hi()
模块优点:
- 代码阅读编写方便,模块化编程
- 实现代码的重用
- 优雅/明确/简单
(1) 导入与选择执行
案例:
[TOC]
描述:模块就是更高级的封装,而模块就是程序;实际就是将一个个python文件编写的函数导入到其他的py文件中进行调用;
前面知识点:
关联知识点:
模块优点:
(1) 导入与选择执行
案例:
[TOC]
描述:模块就是更高级的封装,而模块就是程序;实际就是将一个个python文件编写的函数导入到其他的py文件中进行调用;
前面知识点:
关联知识点:
模块优点:
(1) 导入与选择执行
案例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48#/usr/bin/python3
#导入外部模块验证
## 项目结构
# Day4
# │ demo4.1.py
# │ TemperatureConversion.py
########### 案例1 ##############
#方法1:import TemperatureConversion
#方法2:from TemperatureConversion import c2f,f2c #导入指定模块(不用考虑namespace)
#方法3:from TemperatureConversion import * #不建议此种方法(可能导致命名空间混乱)
#方法:import TemperatureConversion.c2f #导入指定包的指定模块
#方法4:如下(经常)
import TemperatureConversion as Temp
print("32 摄氏度 = %.2f华氏度" %Temp.c2f(32))
print("99 华氏度 = %.2f摄氏度 " %Temp.f2c(99))
########### 案例2 ##############
print(Temp.__name__) #显示的是模块名称
############# 执行结果 ###############
# 32 摄氏度 = 89.60华氏度
# 99 华氏度 = 37.22摄氏度
# TemperatureConversion
# """""""""""""" TemperatureConversion.py """"""""""""""" #
def c2f(cel):
'''摄氏度转华氏度'''
fah = cel * 1.8 + 32
return fah
def f2c(fah):
'''华氏度转摄氏度'''
cel = (fah - 32) / 1.8
return cel
def test():
print("测试 0 C = 0.2f F", c2f(0))
print("测试 0 F = 0.2f C", c2f(0))
#让Python知道是运行还是导入到模块
if __name__ == '__main__': #只有在自身模块文件内才执行test()
print("__name__ 在主程序中显示的是该模块名称, 如果在定义声明文件中执行则显示main : ",__name__) #在本程序TemperatureConversion.py中显示的是main (主程序调用仍然是模块名称)
test()
(2)搜索路径与包package
上面的案例都是模块与主执行文件在同一个目录里面,但是在实际开发中往往是在其他文件子目录中;
Q:那我们如何进行模块的搜寻?1
2
3
4
5>>> import sys
>>> sys.path
['', 'D:\\Python3\\python37.zip', 'D:\\Python3\\DLLs', 'D:\\Python3\\lib', 'D:\\Python3', 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python37\\site-packages', 'D:\\Python3\\lib\\site-packages'(推荐), 'D:\\Python3\\lib\\site-packages\\easygui-0.98.1-py3.7.egg'] # 导入模块时候,Python 在上面的路径中进行查询模块信息并导入
#可以利用 sys.path.append() 进行加入路径到其中
Q:什么是包(Package)?
A:把模块进行分类存放在不同的文件夹里面,把各个文件的位置告诉Python
创建包的步骤:
案例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#!/usr/bin/python3
#模块:案例包导入模块主程序
## 项目结构
# │ demo4.2.py
# ├─Demo
# │ │ Module.py
# │ │ __init__.py
from Demo.Module import success #在指定的Demo包下面找到模块并导入模块里面的函数(可直接调用)
success() #直接调用
########## 执行结果 ##############
# 亲,您成功从包里导入模块中的函数到主程序里面,Yes!
#""""""""""""""" Demo\Module.py """"""""""""""#
#!/usr/bin/python
#功能:模块测试程序
def success():
print("亲,您成功从包里导入模块中的函数到主程序里面,Yes!")
(2) 补充说明
描述:Python标准库自己带有一些常用的模块,但是一些高阶用法还是需要查询官网的Document;
1 | Python IDLE - Help - Python Doc(按F1也可以) |
学习一个模块的重要方法:1
2
3
4
5
6
7
8
9>>> import time
>>> dir(time)
>>> help(time)
#注意当来什么模块进行导入时候就是 * 号 , 在存在__all__ 情况下只会导入下面的模块
>>> timeit.__all__
['Timer', 'timeit', 'repeat', 'default_timer']
>>> timeit.__file__ #模块的源代码文件
'D:\\Python3\\lib\\timeit.py'
>>> timeit.__doc__ #显示帮助可采用print进行格式化输出
你好看友,欢迎关注博主微信公众号哟! ❤
这将是我持续更新文章的动力源泉,谢谢支持!(๑′ᴗ‵๑)
温馨提示: 未解锁的用户不能粘贴复制文章内容哟!
方式1.请访问本博主的B站【WeiyiGeek】首页关注UP主,
将自动随机获取解锁验证码。
Method 2.Please visit 【My Twitter】. There is an article verification code in the homepage.
方式3.扫一扫下方二维码,关注本站官方公众号
回复:验证码
将获取解锁(有效期7天)本站所有技术文章哟!
@WeiyiGeek - 为了能到远方,脚下的每一步都不能少
欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】
或者个人公众号【WeiyiGeek】
联系我。
更多文章来源于【WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少】, 个人首页地址( https://weiyigeek.top )
专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注、转个发、赞个助】,这将对我的肯定,我将持续整理发布更多优质原创文章!。
最后更新时间:
文章原始路径:_posts/编程世界/Python/基础学习/4.Python3基础入门学习笔记(四).md
转载注明出处,原文地址:https://blog.weiyigeek.top/2019/3-29-336.html
本站文章内容遵循 知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议