当前位置: 首页 > news >正文

【从零学习python 】38.Python包的使用及导入方式

文章目录

  • 包的使用
    • 1. 导入包的方式
    • 总结
      • 2. __init__.py文件有什么用
      • 3. __all__
    • 注意事项
    • 进阶案例

包的使用

一个模块就是一个 py 文件,在 Python 里为了对模块分类管理,就需要划分不同的文件夹。多个有联系的模块可以将其放到同一个文件夹下,为了称呼方便,一般把 Python 里的一个代码文件夹称为一个包。

1. 导入包的方式

现有以下包newmsg,包里由两个模块,分别是sendmsg.py、recvmsg.py文件。在包的上级文件夹里,有一个test.py文件,目标是在test.py文件里引入newmsg的两个模块。

目录结构如下图所示:

- newmsg/- __init__.py- sendmsg.py- recvmsg.py
- test.py

sendmsg.py文件里的内容如下:

def send_msg():print('------sendmsg方法被调用了-------')

recvmsg.py文件里的内容如下:

def recv_msg():print('-----recvmsg方法被调用了--------')

可以使用以下几种方式来导入模块,使用模块里的方法。

  1. 直接使用包名.模块模块名导入指定的模块。
import newmsg.sendmsg
  1. 使用from xxx import xxx 方式导入指定模块。
from newmsg import sendmsg
  1. 使用__init__.py文件,导入包里的指定模块。

可以在newmsg里创建__init__.py文件,在该文件里导入指定的内容。

在__init__.py文件里编写代码:

from . import sendmsg  # 导入指定的模块    . 代表的是当前文件夹

test.py文件里的代码:

import newmsg
newmsg.sendmsg.send_msg()  # 可以直接调用对应的方法
# newmsg.recvmsg.recv_msg()   不可以使用 recvmsg 模块,因为 __init__.py文件里没有导入这个模块
  1. 使用__init__.py文件,结合__all__属性,导入包里的所有模块。

在newmsg包里的__init__.py文件里编写代码:

__all__ = ["sendmsg","recvmsg"]  # 指定导入的内容

test.py文件代码:

from newmsg import *  # 将newmsg里的__inint__.py文件里,__all__属性对应的所有模块都导入
sendmsg.send_msg()
recvmsg.recv_msg()

总结

包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py 文件,那么这个文件夹就称之为包,有效避免模块名称冲突问题,让应用组织结构更加清晰。

2. init.py文件有什么用

init.py 控制着包的导入行为。init.py为空仅仅是把这个包导入,不会导入包中的模块。可以在__init__.py文件中编写内容。

newmsg/init.py文件:

print('hello world')

别的模块在引入这个包的时候,会自动调用这段代码。

3. all

在__init__.py文件中,定义一个__all__变量,它控制着 from 包名 import * 时导入的模块。

newmsg/init.py文件:

__all__ = ['sendmsg','recvmsg']

注意事项

在自定义模块时,需要注意一点,自定义模块名不要和系统的模块名重名,否则会出现问题!

进阶案例

【Python】Python 实现猜单词游戏——挑战你的智力和运气!

【python】Python tkinter库实现重量单位转换器的GUI程序

【python】使用Selenium获取(2023博客之星)的参赛文章

【python】使用Selenium和Chrome WebDriver来获取 【腾讯云 Cloud Studio 实战训练营】中的文章信息

使用腾讯云 Cloud studio 实现调度百度AI实现文字识别

【玩转Python系列【小白必看】Python多线程爬虫:下载表情包网站的图片

【玩转Python系列】【小白必看】使用Python爬取双色球历史数据并可视化分析

【玩转python系列】【小白必看】使用Python爬虫技术获取代理IP并保存到文件中

【小白必看】Python图片合成示例之使用PIL库实现多张图片按行列合成

【小白必看】Python爬虫实战之批量下载女神图片并保存到本地

【小白必看】Python词云生成器详细解析及代码实现

【小白必看】Python爬取NBA球员数据示例

【小白必看】使用Python爬取喜马拉雅音频并保存的示例代码

【小白必看】使用Python批量下载英雄联盟皮肤图片的技术实现

【小白必看】Python爬虫数据处理与可视化

【小白必看】轻松获取王者荣耀英雄皮肤图片的Python爬虫程序

【小白必看】利用Python生成个性化名单Word文档

【小白必看】Python爬虫实战:获取阴阳师网站图片并自动保存

小白必看系列之图书管理系统-登录和注册功能示例代码

小白实战100案例: 完整简单的双色球彩票中奖判断程序,适合小白入门

使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化

使用selenium爬取猫眼电影榜单数据

图像增强算法Retinex原理与实现详解

爬虫入门指南(8): 编写天气数据爬虫程序,实现可视化分析

爬虫入门指南(7):使用Selenium和BeautifulSoup爬取豆瓣电影Top250实例讲解【爬虫小白必看】

爬虫入门指南(6):反爬虫与高级技巧:IP代理、User-Agent伪装、Cookie绕过登录验证及验证码识别工具

爬虫入门指南(5): 分布式爬虫与并发控制 【提高爬取效率与请求合理性控制的实现方法】

爬虫入门指南(4): 使用Selenium和API爬取动态网页的最佳方法

爬虫入门指南(3):Python网络请求及常见反爬虫策略应对方法

爬虫入门指南(2):如何使用正则表达式进行数据提取和处理

爬虫入门指南(1):学习爬虫的基础知识和技巧

深度学习模型在图像识别中的应用:CIFAR-10数据集实践与准确率分析

Python面向对象编程基础知识和示例代码

MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作

Python文件操作指南:编码、读取、写入和异常处理

使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章

Python多线程与多进程教程:全面解析、代码案例与优化技巧

Selenium自动化工具集 - 完整指南和使用教程

Python网络爬虫基础进阶到实战教程

Python入门教程:掌握for循环、while循环、字符串操作、文件读写与异常处理等基础知识

Pandas数据处理与分析教程:从基础到实战

Python 中常用的数据类型及相关操作详解

【2023年最新】提高分类模型指标的六大方案详解

Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能

用4种回归方法绘制预测结果图表:向量回归、随机森林回归、线性回归、K-最近邻回归

http://www.lryc.cn/news/127126.html

相关文章:

  • docker 容器满了常用处理方法
  • 28、springboot的静态模版(前端页面)重加载和 devtools开发者工具
  • [FPGA IP系列] FPGA常用存储资源大全(RAM、ROM、CAM、SRAM、DRAM、FLASH)
  • Spark SQL优化:NOT IN子查询优化解决
  • 代码审计-java项目-组件漏洞审计
  • 接口测试的测试用例该怎么写呢
  • C语言例题讲解(if语句,循环语句,函数)
  • 深入探索JavaEE单体架构、微服务架构与云原生架构
  • 【STM32】FreeRTOS互斥量学习
  • Docker容器基础
  • Ajax及前端工程化
  • electron的使用和操作
  • Python最重要的数据结构是列表(list)的使用方法
  • 二开ChatGPT微信小程序源码 AI聊天微信小程序源码 适配H5和WEB端 支持AI聊天次数限制
  • VGG简单学习
  • Stable Diffusion - 人物坐姿 (Sitting) 的提示词组合 与 LoRA 和 Embeddings 配置
  • [oneAPI] 手写数字识别-GAN
  • 爬虫逆向实战(十五)--阿某某营登录
  • 【计组】校验码(奇偶校验码、海明校验码、CRC)
  • File Inclusion
  • 函数性能探测:更简单高效的 Serverless 规格选型方案
  • 嵌入式Linux Qt5 (C++)开发栏目概述
  • C语言“牵手”微店商品详情数据方法,微店商品详情API接口申请指南
  • C++ volatile
  • 空洞卷积学习笔记
  • WPF中的UseLayoutRounding和SnapsToDevicePixels
  • Windows权限维持—自启动映像劫持粘滞键辅助屏保后门WinLogon
  • Mysql之explain详解
  • 每天一道leetcode:1926. 迷宫中离入口最近的出口(图论中等广度优先遍历)
  • Mysql_5.7下载安装与配置基础操作教程