python模块
1.python模块
模块是函数的扩展,函数是一段程序,模块是一段程序块
模块都是放在python的lib文件夹下,他封装了一系列功能,我们自定义的模块也是放在这里
导入模块
import math math.pi 3.141592653589793
sys模块 官方提供的自带模块,叫做标准库模块 其中标准库中与系统有关的模块称之为sys模块
import sys sys.version #查看版本信息 sys.executable#查看当前运行目录 sys.getwindowsversion()#获取window的信息 sys.modules.keys()#当前导入模块信息
---------------------------------------------------------
2.字节编译
执行python的时候,一种是将模块里的内容编译成二进制语言,然后执行这些二进制语言
另一种是直接执行对应模块的二进制语言程序,第二种省略了编译这一步,所以执行
速度快而把模块编译成二进制语言程序的这个过程叫做字节编译,这个过程会产生一个
与编译模块对应的.pyc文件 pyc文件就是经过编译后的模块对应的二进制文件
运行一个python模块,如果有pyc文件就直接执行,诶有就先编译再执行
---------------------------------------------------------------------------------
3.from..import语句
import只是导入模块,并不导入方法
import sys sys.version
from..import既导入模块又导入方法
from sys import version version#不用学sys.version '3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)]' sys.version '3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)]' sys.modules.keys() from..import * #同时导入模块和模块中所有方法
----------------------------------------------------------
4.__name__属性
主模块
调用其他函数的函数叫做主函数 ,没有调用其他函数的函数叫做非主函数
直接被使用的模块叫做主模块,被其他模块调用的模块叫做非主模块
如果一个模块的__name__属性的值是__main__ 那么就说明这个模块是主模块
其实我们可以把__name__属性看做一个变量,这个变量是系统给出的,这个变量
的功能就是判断一个模块是否是主模块
__name__属性的使用
testname.py如下:
print (__name__) ''' if __name__=="__main__": print("main") else: print("not") '''
如果我们直接执行testname.py会发现输出了__main__,因为print(__name__)此时__name__作为的是主模块
if __name__=="__main__": print("main") else: print("not")
这串代码在直接导入的时候会输出main 在import的时候会输出not
-------------------------------------------------------------------------
5.自定义模块:我们写的 保存在lib目录下的py文件就叫做自定义模块
a.py如下
i=0#没有默认参数的时候导入都会报错 j=0#没有默认参数的时候导入都会报错 #或者 int i # int j def add(i,j): k=i+j return k k=add(i,j) print (k)
使用:
import a a.add(1,2)
-------------------------------------------------------------------------
6. dir()函数
查看指定模块的功能列表,查看任意制定对象的功能列表
import sys dir(sys) ['__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_getframe', '_home', '_mercurial', 。。。] d=[] dir(d) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__'。。。]