Python 模块和包

Python 模块(Module),其实就是是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

  • 模块让你能够有逻辑地组织你的 Python 代码段。
  • 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
  • 模块能定义函数,类和变量,模块里也能包含可执行的代码。

一、模块的导入

(1)import 模块名

import 模块名1,模块名2,模块名3,...  # 如果导入多个模块,模块名之间用逗号隔开

模块名也就是.py文件名,如 test.py ,导入语句就是 import test

导入模块后,如果要调用模块中的函数,语法为:

模块名.函数名

 

(2)from 模块名 import 功能名

from 模块名 import 功能1,功能2,...

from 模块名 import *   # *表示全部导入

如果要导入一个模块中的部分功能,用from...import...导入

假设有个 test.py模块,模块中定义了函数func1(),func2(),func3()... ,我们想导入func2():

from test import func2

func2()    # 直接调用即可

 

(3)import...as...

import 模块名 as 别名
from 模块名 import 功能 as 别名
import random as rd
print(rd.randint(1, 100))

 

(4)__all__变量

事实上,当我们以from 模块  import * 方式导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。

因此,如果我们不想模块文件中的某个成员被引入到其它文件中使用,可以在其名称前添加下划线。

另外,以from 模块  import * 方式导入某个模块时,还可以在.py文件中定义__all__变量来指定可以导入的内容(变量、函数、类)。

__all__变量是一个列表,其元素是变量名、函数名、类名。

 

 

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

  • 1、当前目录
  • 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
  • 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。

二、包

为了方便调用将一些功能相近的模块组织在一起,或是将一个较为复杂的模块拆分为多个组成部分;

可以将这些 .py 源程序文件放在同一个文件夹下,按照 Python 的规则进行管理,这样的文件夹和其中的文件就称为包。

包下面有个名为__init__.py的文件。在该文件中编写的代码会在导入包时自动执行。

 导入包和使用包

(1)import

导入:import 包名.模块名
使用:包名.模块名.⽬标

(2)from...import...

导入:from 包名 import *

使用:模块名.⽬标

同导入模块类似,在 __init__.py ⽂件中添加 __all__ = [] ,控制允许导⼊的模块列表。

 

posted on 2023-04-08 20:20  木去  阅读(171)  评论(0)    收藏  举报