【Python百日基础系列】Day09 - Python 模块和包


B站视频讲解:
https://www.bilibili.com/video/BV1wM411g7bM

一、什么是模块

Python模块就是一组功能的组合;实质上一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。
Python的模块分为四个类别:

  1. 使用python编写的代码(.py文件);
  2. 已被编译为共享库或DLL的C或C++扩展;
  3. 包好一组模块的包
  4. 使用C编写并链接到python解释器的内置模块;

二、为什么要使用模块

  1. 避免反复造轮子,提高开发效率
  2. 把相关的代码分配到一个模块里,逻辑性更强,代码更好用,更易懂。

三、导入模块

3.1 导入模块

以random模块为例,导入模块有两种方法:

3.1.1. import module1[, module2[,… moduleN]

示例

import sys
 
print('命令行参数如下:')
for i in sys.argv:
   print(i)
 
print('\n\nPython 路径为:', sys.path, '\n')

3.1.2 import modname as mn

import random as rd	# 给导入的模块起别名
import numpy as np
import pandas ad pd

3.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)

五、导包注意事项

  1. 注意当使用 from package import item 这种形式的时候,对应的 item 既可以是包里面的子模块(子包),或者包里面定义的其他名称,比如函数,类或者变量。
  2. import 语法会首先把 item 当作一个包定义的名称,如果没找到,再试图按照一个模块去导入。如果还没找到,抛出一个 :exc:ImportError 异常。
  3. 反之,如果使用形如 import item.subitem.subsubitem 这种导入形式,除了最后一项,都必须是包,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字。
  4. 无论是隐式的还是显式的相对导入都是从当前模块开始的。主模块的名字永远是"main",一个Python应用程序的主模块,应当总是使用绝对路径引用。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岳涛@心馨电脑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值