目录
13.1 模块
定义:包含一些数据、函数、类的文件,通常是以.py结尾
模块和模块之间如何联系?
13.1.1 模块导入
方式一
import 模块名
作用:将某模块整体导入到当前模块中
使用:模块名.成员
本质:使用变量名module01关联模块地址
方式二
from 模块名 import 成员
本质:将指定模块的成员导入到当前模块的作用域中
方式三
from 模块名 import *
*表示全部
本质:将指定模块的所有成员导入到当前模块作用域中
ps:导入模块会直接执行另一个模块里面的普通代码
注意:导入进来的成员不要与当前模块成员名称相同,如果相同就采用就近原则
as 取别名
from module01 import f as f1
from module02 import f as f2
from module03 import f as f3
f1() # module 01中的
f2() # module 02中的
f3() # module 03中的
import module01 as m01
m01.f1()
13.1.2 隐藏成员
模块中以 下划线(_)开头的属性,不会被导入,通常称这些成员为隐藏成员
隐藏成员:不能通过 from 模块 import * 方式导入
ps:隐藏成员可以通过其他形式调用
# 模块内部用的
def _f2():
print('模块1的f2')
13.1.3 模块变量
__file__ : 模块对应的文件路径名
__name__ : 模块自身的名字,可以判断是否是主模块
注意:当此模块作为主模块(第一个运行的模块)运行时,__name__ 绑定 '__main__' ,当作为其他模块导入时 , 存储的 模块名
主模块叫做:__main__
非主模块叫做:真名
在别人家喊得就是名字在自己加喊得就是称呼;
导入别人家的模块,就是别人家的名字
python的__main__的作用:
1.一个python文件,如果是作为程序来运行时,那么__name__的值为__main__,如果是作为模块来运行,它__name__的值就为模块名
2.把一些非必要的代码,放到main函数里面
main的标准语法
if __name__ == '__main__':
print('我是作为程序运行的')
快速写法
pycharm输入main,然后按tab键或者回车
13.1.4 分类
模块可以分四类
# 1 内置模块:在解析器的内部可以直接使用
# 2 标准库模块:安装Python时已安装且可以直接使用
time,random,re.....
# 3 第三方模块:通常是开源的,需要是自己安装
如何装?
1. 通过 pip install 模块名
requests : pip install requests
2. 通过 Pycharm内置的功能
# 4 用户自己编写的模块 (可以作为别的第三模块)
在python中使用命令行
pip国内源
1)清化大学
PIP源地址:https://pypi.tuna.tsinghua.edu.cn/simple
2)阿里云
PIP源地址:http://mirrors.aliyun.com/pypi/simple/
3)豆瓣
PIP源地址:http://pypi.douban.com/simple/
4)中国科学技术大学
PIP源地址:http://pypi.mirrors.ustc.edu.cn/simple/
5)华中科技大学
PIP源地址:http://pypi.hustunique.com/
建议都用这种
命令: pip install 模块名 -i 原地址
13.2 包(package)
python大致结构
包模块函数语句
包的定义:将模块以文件夹的形式进行分组管理,其实就是管理模块的
包的作用:让一些相关的模块组织的在一起,使逻辑结构更加清晰。
13.2.1 包的导入
语法
from 包.模块 import 成员
# import 搜索路径(优先是找当前目录)
import package01.packge02.m02 as m02
m02.f1()
13.2.2 __init__.py
文件夹和包唯一区别:__init__.py
__init__.py 是包内必须存放的文件,会在包加载时被自动调用
__init__.py 里面放一些关于包内模块的使用说明
标准库
sys os
time , random