- 一、什么是模块
- 二、为什么要使用模块
- 三、导入模块
- 3.1 导入模块
- 3.1.1. import module1[, module2[,... moduleN]
- 3.1.2 import modname as mn
- 3.2 导入模块中的方法(函数)
- 3.2.1 from modname import *
- 3.2.2 from modname import name1[, name2[, ... nameN]]
- 3.2.3 from modname import name1 as mn
- 四、包
- 五、导包注意事项
Python模块就是一组功能的组合;实质上一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。
Python的模块分为四个类别:
- 使用python编写的代码(.py文件);
- 已被编译为共享库或DLL的C或C++扩展;
- 包好一组模块的包
- 使用C编写并链接到python解释器的内置模块;
- 避免反复造轮子,提高开发效率
- 把相关的代码分配到一个模块里,逻辑性更强,代码更好用,更易懂。
以random模块为例,导入模块有两种方法:
3.1.1. import module1[, module2[,… moduleN]示例
import sys print('命令行参数如下:') for i in sys.argv: print(i) print('nnPython 路径为:', sys.path, 'n')3.1.2 import modname as mn
import random as rd # 给导入的模块起别名 import numpy as np import pandas ad pd3.2 导入模块中的方法(函数)
以random模块为例,导入模块中的方法(函数)有两种方法:
3.2.1 from modname import *通常并不主张使用 * 这种方法来导入模块,因为这种方法经常会导致代码的可读性降低。
from random import * # 导入所有方法3.2.2 from modname import name1[, name2[, … nameN]]
推荐使用这种方法,除非是要导入的子模块有可能和其他包的子模块重名,那就给它起个别名。
from random import randint, random # 导入一个或多个方法3.2.3 from modname import name1 as mn
from random import randint as rd # 给导入的方法起别名四、包
目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包。
最简单的情况,放一个空的文件:__init__.py就可以了。当然这个文件中也可以包含一些初始化代码。
包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。
# 导入子模块:sound.effects.echo。 他必须使用全名去访问: import sound.effects.echo # 引用需要全路径 sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
# from导入子模块的方法,引用比较简单 from sound.effects import echo # 引用只需导入的模块 echo.echofilter(input, output, delay=0.7, atten=4)
# 导入模块中的方法(函数) from sound.effects.echo import echofilter # 直接引用函数即可 echofilter(input, output, delay=0.7, atten=4)五、导包注意事项
- 注意当使用 from package import item 这种形式的时候,对应的 item 既可以是包里面的子模块(子包),或者包里面定义的其他名称,比如函数,类或者变量。
- import 语法会首先把 item 当作一个包定义的名称,如果没找到,再试图按照一个模块去导入。如果还没找到,抛出一个 :exc:importError 异常。
- 反之,如果使用形如 import item.subitem.subsubitem 这种导入形式,除了最后一项,都必须是包,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字。
- 无论是隐式的还是显式的相对导入都是从当前模块开始的。主模块的名字永远是"main",一个Python应用程序的主模块,应当总是使用绝对路径引用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)