Python基础教程(13)Python模块与包的使用方法

TangLu 未命名 2019-12-13 3111 0

一、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可以看到包的图标和模块是不同的

· 在导入包或模块时,该文件中的代码会被自动执行


包的结构可以参考下图

python_package.jpg


__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()


评论