1.什么是模块
在python中一个py文件就是一个模块
a.系统模块(标准库) - python系统提供的模块(安装解释器的时候已经导入到解释器中了,使用的时候在代码中直接导入)
random模块 - 提供随机数
math模块 - 提供数学运算
json库 - 提供json数据相关操作
re模块 - 提供正则表达式相关操作
socket模块 - 提供python套接字编程
time模块 - 提供和时间相关的操作
threading模块 - 提供和线程相关的操作
b.自定义模块 - 程序员自己创建的py文件
自己写的模块
别人写的模块 - 第三方库 (需要先下载到解释器中,然后才能再代码中导入)
标准库和第三库一般是通过模块提供变量、函数、类
2.怎么使用模块
import 模块名 - 在程序中直接导入指定的模块, 导入后可以使用模块中所有的全局变量(包含了变量、函数和类)
导入后通过"模块名.变量"来使用模块中的内容
from 模块名 import 变量1, 变量2 - 在程序中导入指定的模块,导入后只能使用import后面的变量
导入后直接使用变量,不用在前面加'模块名.'
from 模块名 import * - 在程序中直接导入指定的模块, 导入后可以使用模块中所有的全局变量(包含了变量、函数和类)
导入后直接使用变量,不用在前面加'模块名.'
3.导入模块的实质:
a.不管是使用import还是from-import,导入模块的时候都会执行模块中所有的代码
b.python中一个模块不会重复导入多次。因为导入的时候系统会自动检查当前模块是否已经导入
4.怎么阻止模块中的内容被其他模块执行
将不希望被其他模块执行的代码放在if语句中
如果希望被其他模块使用的代码就放在if语句的外码
(这儿的if语句指的是: if name == 'main')
原理:
每个模块都有一个name属性, 代表模块名。默认情况下它的值是py文件的文件名。
当当前模块正在被执行(直接执行)的时候,模块属性name的值就会变成'main'
1. 系统模块
import random
print(random.randint(10, 100))
print('=======import model1之前=======')
import model1
import model1
print('=======import model1之后=======')
model1.a = 1000
print(model1.a)
print(model1.fun1())
# print('=========from model2 import之前=========')
# from model2 import aa, x
# print('=========from model2 import之后=========')
# print('aa:', aa)
# print(x)
# # print(model2.func2()) # 不能是用model2中除了aa和x的内容
aa = 'hello'
from model2 import *
# 导入model2,并且可以直接使用里面所有的全局变量
print('aa:', aa)
print(x)
func2()
print('==============import model3================')
import model3
# print(model3.a)
# print(model3.b)
5.重命名 - 导入模块的时候可以对模块或者模块中的内容重新命名
import 模块名 as 新模块名
from 模块名 import 变量名1 as 新变量名1, 变量名2, 变量名3 as 新变量名3
# import model4 as newMode
# print(newMode.age)
import threading as TD
name = 100
from model4 import name as yt_name, age as yt_age
print(name)
print(yt_name)
print(yt_age)
网友评论