首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python的包的定义及如何导入使用

一  包和模块的定义

模块是一个python文件,简单来说以 .py 结尾的文件就是模块,包含了python对象定义和函数等。

包就是文件夹,但该文件夹下必须存在  __init__.py  文件, 该文件的内容可以为空。__init__.py 用于标识当前文件夹是一个包。包下面可以有不同作用的模块,也就是python文件。包下面还可以有子包,也就是子文件夹。

包下面的 __init__.py 文件在导入时会自动执行,并且多次导入时,只执行一次。

这个文件一般用于加载公共模块,例如python内置模块及第三方模块

二  模块类别

模块主要分为内置模块、第三方模块及自定义模块。

其中内置模块就是python自带的模块,例如:os、json、re等。

第三方模块就是别人写好的模块,我们可以通过 pip install 模块名 安装第三方的模块。例如:requests模块

自定义模块,顾名思义就是我们自己定义的模块,通常都放在自定义的某个包里。

三 模块的导入

如果我们想要使用其他模块中的类、函数及变量时,我们可以通过 import 加载,这个过程就叫做模块导入。

模块导入有两种方式,一种是直接通过 import 导入,第二中是通过 from + import 方式导入。

第一种方式大多数都是用在导入官方或者第三方模块时使用,例如下方案例:

# 导入内置的文件操作模块

import os

# 导入第三方HTTP请求模块

import requests

# 请求url

res = requests.get(url='https://motui8.cn')

第二种方式一般都是导入自定义的模块。由于自定义的模块一般都会放在某个包中,所以在导入模块时通过 from 表明,当前模块来自于哪个包,还可直接申明是包中的哪个模块。具体导入方式如下案例:

# 导入 utils 包里面 tools 模块下的 face_swapper 类

from utils.tools import face_swapper

如果包下面有多层子包时,我们可以通过.子包名的方式加载子包的模块中的函数,例如:

# 导入 utils 包里面 sub_utils 子包中 tools 模块下的 face_swapper 类

from utils.sub_utils.tools import face_swapper

这样看起来有点像是PHP中的命名空间。

如果导入的模块的类名或者函数名太长时,python提供别名的方法进行优化,具体方式如下:

# 导入face_swapper类并给他设置一个别名

from utils.sub_utils.tools import face_swapper as fsw

# 使用时,可以直接通过别名进行调用

python函数式编程过程中,一个模块可能定义多个函数,在导入时我们可以通过,分割需要导入的具体函数。如果我们想要导入某个模块下的所有代码时,可以使用*号表示。具体代码形式如下方示例:

# 通过逗号分隔多个导入的代码

from utils.tools import face_swapper,face_enhancer

# 导入所有代码时,使用 * 表示

from utils.tools import *

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O1ziqdJknoirkF_FMcTi0dlA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券