模块的使用

模块的使用
什么是模块:模块就是一系统功能的集合体,在python中一个py文件就是一个模块

使用模块:
import导入模块
导入模块发生的三件事:
1,创建一个模块的名称空间
2,执行模块对应文件,将产生的名字存放于该模块的名称空间
3,在当前执行文件中拿到一个模块名,该模块名指向创建模块的名称空间
注意:模块中功能的执行使终以模块自己的名称空间为准
执行一次导用模块,后面再导用该模块会引用第一次的结果,不会重复执行导用
例: import spam #第一次导入
import spam #导入一次就够了,不会重复执行导入,结果引用第一次导入的结果

print(spam)

print(spam.money)
spam.read1()

为模块起别名:
当模块名过长而且复杂的时候,可以为该模块自定义一个短模块名
例:import adwweqdasd as md #as为该模块的别名


模块的使用之from...import...
导入模块发生的三件事:前两件事与导入import模块发生的事情一样
区别是在当前名称空间中直接拿到模块中名字,可以直接使用,不用加任何前缀

例 form spam import name,age #导入spam模块,name跟age为该模块中的函数名称

name() #使用name()功能时不需要加前缀
age()


注意:1,跟import执行模块中的功能,始终以模块的名称空间为准
2,不加前缀直接使用是很方便,但问题是容易与当前执行文件中相同的名字冲突
例: form spam import money,read1
money=1111111111111111
print(money)
read1=1111111
read1() #会从当前位置开始找名字,当前位置找到了会以当前位置为准
判断py文件的两种执行方式:
编写好的一个python文件可以有两种用途:
一:脚本,一个文件就是整个程序,用来直接执行
二:模块,文件中存放着一堆功能,用来被导入调用


python为我们内置了全局变量__name__,
当文件被当做脚本执行时:__name__ 等于'__main__' #直接执行文件时

当文件被当做模块导入时:__name__等于模块名 #当作模块被调用时

作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
if __name__ == '__main__': 当被直接执行时为Ture,被当作模块调用时为False


模块的搜索路径
内存中已经加载的模块--->内置模块----->sys.path路径中包含的模块

先从内存中找,然后到内置模块中找,再到执行文件的当前文件夹位置找
强调:sys.path的第一个路径是当前执行文件所在的文件夹
posted @ 2018-04-03 17:02  鲁之敬  阅读(76)  评论(0编辑  收藏  举报