模块
模块
模块
1、定义:
模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)本质就是.py结尾的python文件
(文件名为:text1.py ,对应的模块名为:text1)
包:本质就是一个目录(必须带有一个_init_.py文件 )
2:使用(导入)方法;
import module_name
import module1_name,module2_name
from module_kezi import * 导入所有的文件的内容,慎用
form module_kezi import m1,m2,m3
from module_kezi import logger as logger
3、import实际本质(路径搜索和搜索路径)
运行,解释了一遍
是的把python 文件 进行解释一遍。(import test test='test.py all code')
(from test import name name='code')
import module_name----->>moudule-name.py------j
导入包实际就是,执行包下的_init_.py
导入包的例子,建立一个目录date5的package ,在date5下面建立一个test2文件 。然后再建立一个test1文件的文件,test1怎么通过包的形式来调用test2文件代码
思路,首先需要了解,调用包实际就是调用-init_.py的这个文件,因此在_init中要加入test2的模块调用。
然后通过_init文件再到test2这个文件
test2: name="kezi" def test(): print("welcom to my home") test1: import date5 date5.test2.test() _init_: from . import test2 打印结果 welcom to my home
例2 调用同级目录下的子文件使用方式:C1调用a1.py 和b1.py
a1.py def kezi(): print("welcom to my home a1") return b1.py def kezi2(): print ("welcom to my b2") return c1.py from A.a1 import kezi from B.b1 import kezi2 kezi() kezi2() 打印结果: welcom to my home a1 welcom to my b2
例3 调用上级目录下的子文件:b1调用a1.py
b1.py
def kezi2(): print ("welcom to my b2") return from A.a1 import kezi kezi() 打印结果: welcom to my home a1
例4 调用上级目录的文件;b1调用c1;
import sys,os def kezi2(): print ("welcom to my b2") return from A.a1 import kezi from c1 import kezi3 kezi() kezi3() 打印结果 welcom to my home a1 welcome to my c1
4、导入优化方法:
>>> import sys,os
>>> sys.path
['', 'C:\\Users\\Administrator\\Anaconda3\\python35.zip',
'C:\\Users\\Administrator\\Anaconda3\\DLLs', 'C:\\Users\\Administrator\\Anaconda3\\lib',
'C:\\Users\\Administrator\\Anaconda3', 'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages',
'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\Sphinx-1.4.6-py3.5.egg',
'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\win32',
'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\win32\\lib',
'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\Pythonwin',
'C:\\Users\\Administrator\\Anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.5.egg']
print(os.path.abspath(_file_)) #绝对路径
x=os.path.dirname(os.path.dirname(os.path.abspath(_file_))) #获取目录
sys.path.append(x)
import sys
pritn (sys.path)
import module_kezi
5:模块怎么进行分类:
a: 标准库(系统自带的sys,os等)
b: 开源模块(gethub上面的,其他人写的,放到网上的,可以下载)
c: 自定义模块(自已定义的模块)