Python模块简介

模块简介

1.模块就是一系列的功能结合体,使用模块相当于拥有了模块内一系列功能

------------

2.模块分类
 - 内置模块 :解释器自带的,可以直接使用的模块
   eg:
    import time
    time.sleep()
   
 - 自定义模块 : 自己写的模块
   eg:
    注册功能  ,登录功能
    
  
 - 第三方模块 :别人写好的放在网络上的模块 使用需要提前下载
 
 
 
 

------------

3.模块的表现形式
	1.py文件(py文件也可以称之为是模块文件)
	2.含有多个py文件的文件夹(按照模块功能的不同划分不同的文件夹存储)
 	3.已被编译为共享库或DLL的c或C++扩展
 	4.使用C编写并链接到python解释器的内置模块
 
 

导入模块的两种句式

1.import 句式
 #建一个md文件 用import方法导入
import md  # summer
 #第一次是直接执行md文件里的代码运行
print(md.name)  # summer
#通过文件名.点的方式,使用该文件内部的变量名并打印

- 模块导入会产生执行文件的名称空间
  假设import md的文件名是a
  导入动作会令a产生一个全局名称空间

- 产生被导入文件的名称空间并运行该文件
  相当于a文件的名称空间是md文件的名称空间内容
  可以在a名称空间里用点的方式执行md文件里的所有代码
  
- 在执行文件中获取一个模块的名字 ,并通过点的方式使用到被导入文件名称空间的名字
  print(md.name)
  
  
  ***同一个文件反复导入相同的模块,导入的句式只会执行一次 
# import导入
import md  # summer
import md  无效
import md  无效


import 可支持一次导入多个模块
eg :有两种方式
    import time , md, a,等等
  #这种建议模块功能相似的可以用词方法
	import time
	import md
	import a
  # 其他情况建议还是使用这种方式
------------

2.from...import句式
#md文件用from方法导入
from md import name  #summer
#从md文件的名称空间中取一个name的变量名
#导入模块会执行被导入文件的代码
from md import pwd
print(pwd)  # 123
#现在的from名称空间里的名字是pwd
import后面是指名道姓的从md文件中导入某个具体名称

-创建执行文件的名称空间
 导入模块动作会创建from的名称空间
 
-创建被导入文件的名称空间
 运行导入模块会产生被导入文件的名称空间
 
-执行被导入文件中的代码 将产生的名字存储到被导入文件的名称空间中

-在执行文件中获取到指定的名字 指向被导入文件的名称空间

from md import name,pwd,a...
#这种多个变量取值的方式适用于一个模块内的多种取值操作

*全导入模式
from md import *  # *表示所有
用于需要导入模块空间名字比较多的时候
s:针对*号的导入还可以控制名字的数量
  	在模块文件中可以使用__all__ = [字符串的名字]控制*能够获取的名字

两种句式的优缺点

1.import 
  优点:用md.点的方式可以任意执行被导入的文件里的代码
  缺点:就是导入就可以用到被导入文件里的所有内容也不是绝对的优点,有时候可能也不想让操作者拥有这么多权限
  
  

------------

2.from ...import
 优点:指定变量名的使用方式 不需要加模块文件名的前缀
 缺点:变量名及其容易产生冲突 
 eg:
from md import name
print(name)  #summer

from md import name
name = 'jason'
print(name) #jason
#变量名与绑定的值发生了修改 此时的from就没有执行

模块的查找顺序


1.先在内存中查找
2.再在内置中查找
3.然后再去程序系统环境变量中查找sys.path



------------
1.导入一个文件,然后再导入的过程中删除该文件,结果是还能执行该文件代码
import time
import md  
time.sleep(6)
print(md.name) # summer

------------
2.创建一个跟内置模块名相同的文件名
#import time
#print(time.time()) #1657701847.704229
 from time import name
 print(name) #报错

 ps:创建模块文件的时候尽量不要与内置模块名冲突
 
 

------------
3.所有的操作都是按照文件路径来的
import sys
sys.path.append(r'D:\pythonProject7.13')
import summer
print(summer.name)  #hu

from summer import name
print(name) #hu
 ps:1.通用的方式
	sys.path.append(目标文件所在的路径)
     2.利用from...import句式
	起始位置一定是执行文件所在的路径文件夹
	from xxx import mdd
posted @   Hsummer  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示