模块

模块

模块
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: 自定义模块(自已定义的模块)

posted @ 2019-12-18 00:07  科子  阅读(194)  评论(0编辑  收藏  举报