Python基础教程(13)Python模块与包的使用方法
一、Python模块的作用
Python通过许许多多不同的模块来实现不同的功能,这些模块在应用过程中不会一下子全部提供给用户,而是需要用到什么功能的时候再导入什么模块。每个模块就好比生活中的工具,需要什么工具的时候再从工具包中拿出使用
二、如何导入Python模块
在Python中可以通过import或者from来导入模块
1、使用import导入模块时会直接导入整个模块,该模块下的所有功能都可以使用,在使用某功能的时候需要指定模块的名字
#导入整个math模块,需要通过指定模块名来使用里面的功能 import math print(math.pi)
2、使用from导入模块时可以选择性地从模块中导入指定的功能,而且使用该功能时不需要指定模块名
#只从math模块中导入pi常量,可以直接使用pi进行调用,而无需使用math.pi from math import pi print(pi)
3、使用*导入某个模块的所有功能,和import导入整个模块不同的是在使用某个功能时不用加模块名。这里的*实际是受到了__all__变量的影响,该变量是一个列表,包含了模块下的所有功能,可以通过修改该变量取消导入某些功能
#使用*和直接import的对比 import time time.sleep(5) from time import * sleep(5) #修改__all__来控制导入的功能 cat test_import.py __all__ = ['test_a'] #all实际只包含test_a def test_a(a,b): print(a+b) def test_b(a,b): print(a-b) from test_import import * #使用*只会导入test_a
4、导入模块并为模块指定别名,主要是给一些名字特别长的模块重命名,方便后面使用
import time as t t.sleep(5)
5、导入自定义模块
模块其实就是py文件中的代码块,比如我们在a.py中定义的函数,在b.py中也是可以调用的
#a.py def test(a,b): print(a + b) #b.py import a a.test(10,20)
三、Python常用标准库介绍
Python提供的标准库覆盖了文本处理、文件目录管理、系统操作、网络请求等常用功能,并且为不同的Python版本都做了说明文档,参考 https://docs.python.org/zh-cn/3.10/library/
1、sys模块:用于获取python自身相关信息的模块
import sys print (sys.version) #Python版本 print (sys.platform) #系统平台 print (sys.argv) #运行脚本时所添加的命令行参数,有多少个参数就会打印多少个
2、os模块:用来对系统做管理的模块,通常用来操作磁盘或者目录
import os print (os.name) #获取操作系统的类型 print (os.environ['path']) #获取操作系统的环境变量,这里是获取了path这个变量 print (os.getcwd()) #获取当前目录 print (os.listdir('c:/')) #列出指定目录中的内容 os.system('ipconfig') #执行系统命令,如ipconfig
3、math模块:用于做运算的模块
4、random模块:生成随机数的模块,数据类型为整数,如果需要和input()所传递的数据做比较的话需要进行数据类型转换
print (random.randint(1,101)) #返回1-100之间的随机整数 print (random.sample([1,2,14,24,6],2)) #从数组中返回2个随机元素
5、正则文字处理模块:re
6、日期类型模块:time、datetime
import time a = (time.time())/60/60/24/365 #从1970年到现在过了多少年 print (a)
7、datetime模块:和时间设置相关的模块
print (datetime.now()) #返回当前时间
四、Python中包的用法
从物理上来看Python中的包就是一个文件夹,该文件夹里面可以包含许多Python模块(也就是多个.py文件)。从逻辑上看,包的本质也可以看作是模块。
· 在创建包的时候,文件夹中必须有一个__init__.py文件。只有当该文件存在,这个文件夹才可以称作是一个包
· __init__.py文件用于对包进行一些全局初始化设定,比如定义__all__变量的内容
· __init__.py文件在创建的时候是空的,通过PyCharm可以看到包的图标和模块是不同的
· 在导入包或模块时,该文件中的代码会被自动执行
包的结构可以参考下图
__init__.py文件的使用
如果有大量模块需要导入一个相同的库,可以统一写在__init__.py文件中,这样就不用在每个模块文件中重复书写
cat __init__.py import sys import datetime
Python包的导入方式
和导入模块一样,只是多了一个层级
#导入my_package包中的两个模块 import my_package.my_module1 import my_package.my_module2 #使用两个模块中的功能 my_package.my_module1.info_print1() my_package.my_module2.info_print2()
评论