caicaix

导航

模块

简介

模块就是一系列的整合,使用时直接调用即可,模块可以提高效率

 

1.来源

1.内置的(python解释器自带的,可以直接使用)

2.第三方的(别人写好直接放网上,想要下载才可以使用)

3.自定义的(自己写的)

 

2.存在模式

一共有四种模式,目前只用2种

1.我们自己写的单个py文件(一个py文件就是一个模块)

2.包:

其实就一系列模块的结合体,其实就是文件夹

 

import句式

import  xxx   # 导入xxx文件

首次导入文件,会执行导入文件的代码,导入文件不管你导入几次,都只执行一次

导入文件的过程:

1.运行执行文件,产生执行文件的全局名称空间

2.运行md.py文件,会产生md文件的全局名称空间,把md文件里的名字都丢到md的全局名称空间去

3.在执行文件中有一个md的变量,指向导入文件的空间地址

4.以后我们执行文件中就可以用md来点出来导入文件中的名字

导入文件之后,以后在用导入文件中的名字,只需要使用md点语法形式点出来就可以

不会与执行文件中的名字发生冲突,因为我们是指名道姓的取值

 

from .... import ....句式

首次导入会执行文件

导入多次也只会执行一次

导入文件的过程:

1.运行执行文件,产生执行文件的全局名称空间

2.运行导入文件md.py,产生md文件的全局名称空间,然后把md中所有的名字都丢到md的全局名称空间中去

3.在执行文件中有一个变量xxx指向导入文件中的xxx的空间地址

4.我们想要使用导入文件的xxx,直接用money即可,不再使用md.xxx了,此时,知识把导入文件的xxx导入到执行文件,其他都没有

导入文件之后,就有可能发生执行文件中的名字和导入文件中的名字产生冲突,此时,会使用当前执行文件中的名字

 

导入模块的扩展用法

1.起别名

以下都是一样的效果 

import  xxx as t

print(xxx.name)

print(t.name)

from xxx import name as t

print( t )

 

2.连续导入

一次导入多个变量

import  md, time, os, sys

 

3.通用导入

只允许导入固定变量

from  md import *     # 导入文件

在执行文件的末尾

__all__:[xxx, yyy]     # 只允许导入xxx和yyy文件

 

判断文件类型

1.__name__

1.在执行文件行文件中打印,就是字符串__mian__

2.如果在导入文件中打印,就是导入文件的文件名

 

2.如何让一个文件不被导入

提前做个判断,看文件中的__name__,是文件名还是 ' __mian__ '

 if __name__ == ' __main__ ' :

   pass

 

循环导入(了解)

循环导入就是导入卡住

导入文件xxx

  from  yyy improt  a

  b = 2

 

导入文件 yyy:

  from xxx import  b

  a = 1

 

执行文件:

  import xxx

  import yyy

  print( ' 结束 ' )

由于一直循环卡死就会报错,所有我们必须处理

 

1.如何处理

  1.把导入语句放到代码最下面    # 不建议使用,一般放开头

  2.函数式    #将导入写成函数,然后再调用

 

模块的查找顺序(重要)

1.查找顺序

  1.先从内存中查找

  2.再从内置模块中查找

  3.从环境变量sys.path中查找(重要)

  4.以上都找不到就报错

 

2.添加到sys.path

sys.path.append(r ' D:路径 ')

3.from 模块1.模块2.模块3  import ... 句式

from aaa.bbb.ccc import  xxx

 

posted on 2023-06-06 20:40  菜CAIx  阅读(6)  评论(0编辑  收藏  举报