8.1 模块基础

8.1 模块基础

8.1.1 模块的引入

  • 函数可以封装代码,让不同功能的代码独立开来。

  • 代码的进化:面条版->函数版->文件版->文件夹版->微服务(多个小项目)。

  • 其中,文件版python叫作模块

  • 模块存在的目的: 模块可以放多个函数,然后把多个函数分成多个文件,一个模块可以具有很多的功能。

8.1.2 模块的四种形式(***)

  1. 自定义模块:自己编写,直接用。
  2. 第三方库:需要下载后使用,如requests
  3. 内置模块:直接用,如time
  4. 文件夹版:在python中叫作包

模块的使用可以简化操作,无需开发相同功能,直接使用。

8.1.3 模块导入的三种方式

  • 方式1 import
方式1 import time
# 将time文件导入到内存,将模块内容放入全局变量,内部函数名丢入全局/内置中,使用时候直接调用。
# 导入time文件,能够使用time中所有方法。

方式1步骤:

  1. 打开time文件,

  2. 把time文件内的内容读入python解释器的内存,然后把文件内的名字放入特定的模块time的名称空间。
    time.spleep(0);

  3. test.py中会有一个time模块的名称空间,如果导入方式为‘import time as t’,则就是t变量指向time模块的名称空间

  • 优点:可以拿到time里全部内容并使用。

  • 缺点:占用内存较大,使用时候需要用:'time.sleep(0)'

  • 方式2 from ... import

方式2 from ... import...
from a import b
from a import b,c,d...
#取出多个名字也不需要加'time',全部直接使用就可以了

from time import sleep
from time import time,sleep
#只导入指定方法,不能使用其他

方式2步骤:
(1)打开time文件;
(2)把time文件内的内容读入python解释器的内存,然后把文件内的名字放入特定的模块time的名称空间;
time.spleep(0)
(3) test.py中会有一个time模块的名称空间,如果导入方式为‘from time import sleep ,localtime’,则就是 sleep 和localtime变量指向time模块的名称空间中的sleeep和localtime。

缺点:只能拿到sleep,sleep放入全局。如果当前文件又定义一个sleep参数,则会冲突。
优点:占用内存较小,直接使用'sleep(0)'

  • 方式3 from time import *
方式3 from time import *
#取出所有的名字不需要加'time',全部直接使用就可以了
  • 示例
# spam.py模块文件
# 与执行文件放入同文件夹下
# __all__  #限定全部导入时只能拿到什么
__all__=['lis'] #全部导入时候只能拿到'lis'

def f1():
    print('from f1')

lis=[1,2,3,4]
# main.py执行文件

#导入方式1
 import spam
 print(spam.lis)
 spam.f1()
    
 
#导入方式2
 from spam import f1,lis
 print(lis)
 f1()
    
    
#导入方式3
from spam import*
print(lis)
f1()

8.1.4 Python文件的两种用途

  1. 可以当做模块导入---->模块文件:可以有多个
  2. 可以当做运行文件运行--->运行文件:只能有一个
  • 搜索路径以执行文件为基准
posted @ 2025-08-29 21:34  bokebanla  阅读(9)  评论(0)    收藏  举报