模块的定义
用来从逻辑上组织pythong代码(变量、函数、逻辑等),本质是以.py结尾的python文件,用来实现某种功能。(文件名:test.py;模块名是test )
模块使用import导入 方法
调用test模块的变量,可以用 print(test.name)或,print(test.ttt()),其中name是test里的变量,ttt()是test里的函数,导入多个模块用‘,’号分开, 例如import xww,test
导入某个模块所有的变量和函数用 from test import *(不建议用,因为如果函数或者变量和本程序里的内容一样,会导致变量或者函数备覆盖)
如果有同样的函数或变量,而又想调用,可以用from test import ttt as ttt_dao,然后调用ttt_dao即可。最后用ttt_dao(),导入的时候不可以带()。
import的本质,就是把python文件解释一遍。
from test import name (name是test模块里的一个变量) 本质是打开test文件,从中取变量或者函数,下面下文可以直接调用name,print(name)
import test本质是将test里的所有内容解释一遍赋值给变量test,需要使用的使用必须是test.name
from day5 import name 从文件day5目录导入name文件
访问当前目录的上一级目录
import sys ,os
os.path.abspath(_file_)获取当前文件的目录
os.path.dirname(os.path.abspath(_file_)) 获取上一级目录,每增加一层os.path.dirname()就会往上一层。
最终将目录加入到环境变量里是
sys.path.append(os.path.dirname(os.path.abspath(_file_)) ).
包——就是一个目录(必须带有一个_init_.py的文件),包使用来从逻辑上组织模块,就是里面放一堆模块。本质就是执行他下面的_init_.py文件。
package里面如果想要调用其他.py文件
需要在_init_ 文件里将想到调用的文件(模块)导入命令 from . import .py 文件,然后就可以调用了。
模块导入优化
from xww import test ,后面用的时候就直接用test()即可,如果是import xww,则需要xww.test(),还得先找到xww,比较费时
模块的分类
a 标准库
b 开源模块
c 自定义模块