Python模块方法总结

发布于:2024-05-02 ⋅ 阅读:(24) ⋅ 点赞:(0)

一 模块简介

模块(module)和C语言中的头文件以及Java中的包很类似,在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入。

import math

#这样会报错
print sqrt(2)

#这样才能正确输出结果
print math.sqrt(2)

有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以用下面方法实现:

from 模块名 import 函数名1,函数名2....
# 如果想一次性引入math中所有的东西,还可以通过from math import *来实现

注意:如果一个文件中有__all__变量,那么也就意味着这个变量中的元素,不会被from xxx import *时导入。

二 模块定位

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

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

三 模块制作

在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字,如下所示 test.py文件即为一个模块:

    def add(a,b):
        return a+b
    # 以下是模块作者的测试代码,无需执行,则需要根据__name__变量的结果能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码
    if __name__ == 'main':
        print('test..')

在另外一个文件调用该模块:

    import test

    result = test.add(11,22)
    print(result)

四 包:Python中对模块的组织

多个模块互有关系,且最终在合作下统一向外提供一些功能,此时可以将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py 文件,那么这个文件夹就称之为包。

init.py 控制着包的导入行为,仅仅是把这个包导入,不会导入包中的模块。在__init__.py文件中,定义一个__all__变量,它控制着 from 包名 import *时导入的模块:

__all__ = ["sendMsg", "receiveMsg"]
print("---1---")
def test():
    print("---2---")