python基础篇-模块和包

模块和包:可以理解为代码组织的一种方式吧,就像其它的依赖和引入

模块: 有联系的代码组成的py文件

方式1

  引用:imort ModuleName

  使用:ModuleName.method()

方式2

  引入: form ModuleName import MethodName

  使用: MethodName()

方式3:

  引入:from ModuleName import *

  使用: ModuleName.method()

别名: 关键字as  使用了别名,就只能使用别名,而不在能使用模块或方法的原本名称

 imoprt ModuleName as mn

 from ModuleName import MethodName as ms

_name_:系统变量  ,指向当前模块的模块名称

  _name_: 1.在别的模块中调用时,_name_ == ModuleName

       2.在自身文件中调用,_name_ =='_main_'

在其它导入的文件中运行时,调用当前模块的_name_变量,_name_ ==‘_main_’ 不会成立,所以该判断下的代码不会执行

 

模块的调用顺序:

  1.在当前目录中查找

  2.如果当前目录中不存在,则搜索shell变量下的PYTHONPATH路径下的目录(环境配置)

  3.如果还没找到,则查看系统的默认路径(一般不会到这步)

  ps1: 自定义的文件名不要与已有的模块重名,以免导致已有的模块无法调用

  ps2:使用from 模块 import 功能时,如果功能名称重复,则调用最后定义和导入的

from time import sleep
def sleep():     <=============
    pass


def sleep():
    pass
from time import sleep 《==============

  ps3:模块名称本质也是一个引用,如果指向其它变量,也会被覆盖而导致无法使用

模块的_all_变量: 是一个列表,控制模块imort *时的导入行为,只导入_all_列表中声明的功能

  _all_ = ['testA','testB']

 

包:文件夹,存放相关联的模块,文件组织方式,创建包会生成一个_init_.py文件,该文件可以控制包的导入行为

导入包:

  import 包名.模块名

  from 包名 import *

在_init_.py中定义一个_all_ =[]列表,控制允许导入的模块名称,如果不存在,则无法导入任何文件夹下的模块,只有声明的模块可以导入

posted @ 2025-08-28 18:11  Wind_Swing_Dunn  阅读(23)  评论(0)    收藏  举报