模块
模块是一系列功能的集合体,在python中一个py文件就是一个模块,比如module.py其中模块名module

使用模块
1.import  导入模块
首先导入模块发生的三件事:
1.创建一个模块的名称空间
2.执行模块对应文件,将产生的名字存放于1中的名称空间
3.在当前执行文件中拿到一个模块名,该模块名指向1的名称空间。
强调:之后的导入会直接引用第一次导入的结果,不会重复的执行文件。

模块中功能的执行始终以模块自己的名称空间为准
ipmort spam
read1=111111
print(spam.read1)

money=11111111
spam.read1()


为模块起别名:
import spam as sm
print(sm.money)
sm.read1()

一次导入多个模块(不推荐使用)
import spam,mysq1 oracle

推荐写成多行
import  spam
import  mysq1
import  oracle


模块的使用之from...import...
首先导入发生的三件事,
1.from...import...与import前两件事是一模一样的
2.在当前名称空间中直接拿到模块的名字,可以直接使用不用加任何前缀
from spam import money,read1,read2,change
print(money)
read1()
read2()
change()

注意:
1.同import,执行模块中的功能,始终以模块的名称空间为准
money=11111
change()
print(money)    #11111
2.from...import...名字,拿到的名字可以不加前缀直接使用,使用起来更加方便,但问题是容易与当前执行文件中相同的名字冲突
money=11111
print(money)    # 11111

read1=1111
read1()      #报错

起别名:
from span import money as m
print(m)

在一行导入多个功能
from span import money,read1,read2

当功能特别多的时候可以在import后面加*
from...import*
在文件开头加上__all__=['money','read']规定死,用户只能用这两个功能


区分python文件的两种用途:
__name__判断文件是被当做脚本执行还是被调用
__name__的值
1.在文件被直接执行的情况下,等于‘__maim__’
2.在文件被导入的情况下,等于模块名
if __name__=__main__
       print('文件被当成脚本执行')
eles:
       print('文件被导入')

模块的搜索路径:
模块的查找顺序:
1.内存中已经加载的模块
2.内置模块
3.sys.path路径中包含的模块

强调:sys.path的第一个路径是当前执行文件所在的文件夹





posted on 2018-04-03 17:09  muzinianhua  阅读(88)  评论(0编辑  收藏  举报