模块
Python模块是一个python文件,以.py结尾,包含了python对象定义和python语句。
模块能定义函数、类和变量,模块里也能包含可执行的代码
模块导入方式
1、 import 模块名
2、 from 模块名 import 功能名1,功能名2....
3、 from 模块名 import *
4、import 模块名 as 别名
5、from 模块名 import 功能名 as 别名
例子:计算9的开平方
# 导入模块
import math
#调用模块功能
# 通过`模块名.功能`的格式调用功能
print(math.sqrt(9))
# 导入math模块的指定功能 sqrt
from math import sqrt
#调用sqrt可以直接调用,不需要通过模块名
print(sqrt(9))
#导入math模块所有的代码功能
from math import *
# 可以直接调用模块功能
print(sqrt(9))
as 定义别名
# 模块定义别名
import 模块名 as 别名
# 功能定义别名
from 模块名 import 功能 as 别名
例如:
# 导入time模块,并将设置别名为 tt
# 一旦模块设置了别名,就不能通过模块名调用功能
import time as tt
# 睡眠2秒钟,再打印hello
tt.sleep(2)
print('hello')
# 功能别名
from time import sleep as sl
sl(2)
print('hello')
制作模块
每个python文件都可以作为一个模块,模块的名字就是文件的名字,也就是说自定义模块名必须要符合标识符命名规则。
例子:
定义个rw_sum.py文件,并定义to_sum()函数
1、创建模块(新建一个.py文件)
创建一个rw_sum.py文件
2、定义to_sum()功能
def to_sum(a,b):
print(a + b)
3、测试模块
# __name__ 是系统变量,是模块的标识符(如果是自身模块值是__main___,否则是当前的模块名字)
# 如果py代码是在当前自己py文件中运行,则__name__等于__main__
# 否则__name__的值就等于这个py文件名
if __name__ == '__main__':
to_sum(1, 2)
4、调用模块
import rw_sum
rw_sum.to_sum(1,2)
模块定位顺序
当导入一个模块,python解析器对模块位置的搜索顺序是:
1、当前目录
2、如果不在当前目录,Python则搜索在shell变量PYTHONPATH的每个目录
3、如果都找不到,Python会查看默认路径。
注意:
1、自己的文件名不要和已有模块名重复,否则导致模块功能无法使用
2、使用`from 模块名 import功能`的时候,如果功能名重复,调用的是最后定义或导入的功能
all
如果一个模块文件中有`__all__`变量,当使用from xxx import * 导入时,只能导入这个列表中的元素
例如:
rw_sum.py模块代码:
__alloc__ = ['to_sum']
def to_sum(a,b):
print(a + b)
def to_harf(a):
print(a/2)
包
包 将有联系的模块组织在一起,即放在`同一个文件夹`下,并且在这个文件夹创建一个名字为`__init__.py`文件,那么这个文件夹就称为包
制作包
[NEW] -- [Python Package]-- 输入包名--[OK] -- 新建功能模块(有联系的模块)
注意:新建包后,包内部会自动创建__init__.py文件,这个文件控制着`包的导入行为`
导入包
方法一:
import 包名.模块名
包命.模块名.目标功能()
方法二:
必须在__init__.py文件中添加__all__=[],控制允许导入的模块列表
from 包名 import *
模块名.目标功能()
网友评论