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__'。。。]

 

posted on 2015-12-09 15:47  itliucheng  阅读(313)  评论(0编辑  收藏  举报