首页 > 代码库 > python的模块!

python的模块!

以下是对模块的理解,和总结

<1>模块是什么

 模块是这样用的 import os 这就是导入了os模块

这和c语言里的#include<stdio.h>导入方式是一样的

导入了以后就可以用里面的一系列函数了

其实os 模块就是 一个os.py 的文件,当import以后,就可以用里面的mkdir,rmdir方法等

其实os.py文件里面的代码是这样的

def mkdir()    xxxxdef rmdir()    xxxx

<2>模块的调用方法

a.import os

b.import os,math....#可以多个模块写一起,但是这样会容易乱

c.from os import mkdir 

  mkdir(‘abc‘)#下面直接用就可以了,就不用os.mkdir(‘abc‘)

这种导入方法,比较方便的地方就是可以导入os这个模块里的所有方法

from os import *

<3>定位模块

当你导入一个模块,Python解析器对模块位置的搜索顺序是:

  1. 当前目录
  2. 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
  3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/
  4. 模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

<4>模块调用详细

新建一个test.py,代码如下

def print_hello():    print(-----hello-----)def add(a,b):    return a+b

在file.py文件里,导入这个模块

import testtest.add(2,5)

 上面就是最简单的调用

但是,还有一个问题:我自己写的模块,里面有很多函数,我自己要测试一下是否能正常运行,这时候就要在里面加入测试代码

 

def print_hello():	print(‘-----hello-----‘)def add(a,b):	return a+bif __name__ == ‘__main__‘:	print_hello()	print(add(1,2))

重点来了:就是这句

  if __name__ == ‘__main__‘:

 

为什么加这个判断:因为如果没有判断的话 ,在调用test模块的时候,测试语句也会被file,py所执行打印出来

 

但是测试语句我们只想让模块他自己调用,其他外人不给用

 

而且 print(__name__)这个在模块本身输出的结果是__main__

 

但是在外面调用的时候输出是模块的名字test

 

所以就可以通过加判断,让这个测试语句只被模块自己调用

 

python的模块!