python模块

##模块的定义
模块是包含函数和其他语句的python脚本文件,它以“.py“为后缀名,可以通过倒入模块然后使用模块中提供的函数和数据。
##模块的基本用法
1,导入模块
可以使用以下两种方式导入模块或者模块中的函数。

  • import 模块名
  • import 模块名 as 新名字
  • from 模块名 import 函数名
    from 时将模块中的函数或者名字导入,而不是整个模块
    使用import和from还有一个不同:要想使用import导入模块中的函数,必须是模块名+"."+函数名
import math

print sqrt(16)
  #正确的为
import math

print math.sqrt(16)

这里写图片描述
使用from导入函数,使用函数时不用加模块名,如果想将模块中的所有函数导入,在from后使用*通配符

在python2中,还可以通过使用内置函数reload重新载入模块
在python3中,reload函数已经被删除,可以使用imp模块中的reload函数。
2,编写一个python模块
在mymodule.py模块中定义一个函数
这里写图片描述

import mymodule

mymodule.show()

这里写图片描述
除了在模块中声明函数外,还可以在函数中定义变量,模块中的变量同样也可以在其他脚本文件中使用。
在模块中

def show():
    print "I'm a moudle!"

name = 'mymodule.py'

使用新建的脚本文件调用模块的变量

import mymodule

mymodule.show()
print mymodule.name

这里写图片描述

##Python在哪里查找模块
如果调用的模块和运行的函数在同一个目录下则直接调用,否则如果Pthon解释器首先在当前目录下查找要导入的模块,如果为找到,则Python解释器会从sys模块中path变量指定的目录下查找要导入的模块。

使用sys.path输出Python的模块查找路径

import sys
print sys.path

在脚本中可以向sys.path添加模块查找路径。

import sys
import os

modulepath = os.getcwd() + '\\module' 
sys.path.append(modulepath)	 #添加路径
print sys.path		#显示添加的路径
import mymodule		
mymodule.show()
print mymodule.name
mymodule.name = 'usemodule.py'
print mymodule.name

这里写图片描述
这里写图片描述

##编译模块
虽然Python时脚本语言,但是可以将脚本翻译成字节码的形式,对于模块总是在第一次调用完后将其编译成字节的形式,以提高脚本的运行速度。
如果想要编译非模块的的脚本,使用complile模块。

import py_compile
py_compile.compile('mymodule.py','mymodule.pyc')

在Python3中如果不指定第二个参数,则将在当前目录新建一个名为“pycache“的目录,并在这个目录生成“被编译模块.cptthon-32。pyc“的pytc字节码文件。
另外还可以通过Python的命令行选项将脚本优化编译。
python -O compile.py #优化不多,编译后脚本以“.pyo“为扩展名。凡是以他为扩展名的热字节码都是经过优化的
python -OO compile.py #脚本优化程度较大,可是使编译的脚本更小。
##模块也可以独立运行
利用属性name判断脚本的运行状态

def show():
    print "I'm a moudle!"

if __name__ == '__main__':
    show()

##如何查看模块提供的函数名

dir (【object】)
如果不传参数,那末将返回当前脚本的所有名字列表。

a = [1,2,3,4]
b = 'python'

def fun():
    print 'Python'
    
print dir()

这里写图片描述

##用包来管理多个模块
包可以看作处于同一目录中的模块。在包的每个目录中必须包含一个名为
init.py的文件,是一个空文件,仅用于表示该目录是一个包。
如果A是一个包,导入模块的时候可以使用import和from

from A.B inmport a  #导入A包的B模块的a函数

import  A.B.a

包也可以内部引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值