模块的定义,导入,优化

1,定义

模块,用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件。(文件名test.py,对应的模块名就是test)

### 这个理解就是读一下你import的文件

2,导入方法

import module_name

import module_name1,module_name2

from module_name import *  #导入module_name 下的所有内容

form module_name import m1,m2,m3 #导入module_name 下的 m1,m2,m3函数,这里m1也可以是值

form module_name import m1 as m1_qiangql  #导入 module_name下的m1 方法,但是防止本地也有这个方法,另起一个名字m1_qiangql(如果本地重名了,本地的内容就会覆盖调用的函数)

3,import本质(路径搜索和搜索路径)

导入模块的本质就是把python文件解释一遍

(import test  这里 test 等于 ‘test=test.py all code’#test里的所有代码)

(from test import m1   这里m1=‘code’,也可以 from test import name 这里name=‘code’一个道理)

import module_name------>module.py------>module.py的路径------> sys.path  #找到module.py的位置,sys.path 变量里边定义一堆搜索路径,后边我们append 自己的路径加进去,就是为了寻找

os.path.abspath(__file__) #获得当前绝对路径

os.paht.dirname()#获取目录名

os.paht.dirname(os.path.abspath(__file__) )#返回当前目录的父集,可以多几次dirname

sys.path.append(os.paht.dirname(os.path.abspath(__file__) )) #把这个路径加到path里边,这里有一个问题,path是个列表序列,如果前边有类似的目录,就会找歪了

sys.path.inster(0,sys.path.append(os.paht.dirname(os.path.abspath(__file__) ))) #这里用到inster 方法,这里0就是把路径直接放到最前边

导入包的本质就是执行该包下的__int__.py文件

4,导入优化

这个就一个点,就是防止重复运行

这里就是重复检索module_test。

这样 from module_test import test, 直接可以在函数里调用test(),防止重复检索。

5,模块的分类

啊:标准库

吧:开源模块

吃:自定义模块

原文地址:https://www.cnblogs.com/PYlog/p/8821110.html