首页 > 编程语言 >23.Python基础篇-模块和包

23.Python基础篇-模块和包

时间:2024-11-14 17:43:27浏览次数:1  
标签:__ __. 23 Python py init 导入 模块

模块(Module)

模块的定义:模块是包含 Python 代码的 .py 文件,可包含变量、函数、类等代码单元。每个 Python 文件本质上就是一个模块。

两种使用方式

import与from ... import...

import math                     # 导入整个模块
from math import pi, sqrt       # 导入模块中的特定内容

绝对路径与相对路径导入

默认查找路径

 通过 sys.path 列表查找模块的路径。可以通过修改 sys.path 或配置 PYTHONPATH 环境变量来调整模块的查找路径。

print(sys.path)  # 查看默认查找路径
# ['C:\\Users\\15801\\PycharmProjects\\pythonProject\\模块', 'C:\\Users\\15801\\PycharmProjects\\pythonProject', 'D:\\JetBrains\\PyCharm 2023.1.4\\plugins\\python\\helpers\\pycharm_display', 'D:\\Python\\Python38\\python38.zip', 'D:\\Python\\Python38\\DLLs', 'D:\\Python\\Python38\\lib', 'D:\\Python\\Python38', 'D:\\Python\\Python38\\lib\\site-packages', 'D:\\JetBrains\\PyCharm 2023.1.4\\plugins\\python\\helpers\\pycharm_matplotlib_backend']

修改添加默认查找路径

修改sys.path列表的方式

sys.path.append('C:\\Users\\15801\\PycharmProjects\\pythonProject\\模块\\xxx')  # 往列表中增加一个新的路径,添加之后再导入时会从这个路径查找要导入的模块

包的定义

包是包含多个模块的文件夹,通常包含一个 __init__.py 文件来标识该文件夹是一个包。包可以包含多个模块或子包。

包的结构

my_package/
├── __init__.py
├── module1.py
├── module2.py
└── sub_package/
    ├── __init__.py
    └── module3.py

 

__init__.py文件

文件说明:用于初始化包,在包被导入时会执行其中的代码。

执行时机:在包被导入时。执行到import当前包的时候,会自动执行当前包下的__init__.py

什么作用

在A包下的__init__文件中,写上导入B包的内容。这样当再导入A包时,会将B包的内容也加载到内存中

# my_package/__init__.py
from .module1 import func1  # 使得 func1 可以通过 my_package.func1 调用

 

可以用来做什么

1.可以在 __init__.py 文件中指定包的默认导入项,让用户导入包时可以直接访问某些模块或变量。

例如,创建一个 math_pkg 包,包含 addition.pymultiplication.py 模块,我们希望用户只需导入 math_pkg 就能直接使用这些模块里的函数,可以在 __init__.py 中进行如下配置:

# math_pkg/__init__.py
from .addition import add
from .multiplication import multiply

这样,用户可以直接使用以下方式访问包中的内容,而不必分别导入每个模块:

import math_pkg

result = math_pkg.add(3, 4)      # 直接使用 add 函数

2.控制包的命名空间

可以通过在 __init__.py 文件中定义 __all__ 列表来限制包的命名空间,指定哪些模块或内容可以被外部导入:

# my_pkg/__init__.py
__all__ = ["module1", "module2"]

这样,from my_pkg import * 只会导入 module1module2,而不会导入其他模块。

   

标签:__,__.,23,Python,py,init,导入,模块
From: https://www.cnblogs.com/mingbo-1/p/18545698

相关文章

  • 从0搭建一个FIFO模块-01(基础知识)
    1.FIFO介绍基本概念FIFO(FirstIn,FirstOut)是一种常用的数据结构,用于存储和处理数据。它的工作原理与排队的顺序类似,遵循"先进先出"的原则。即,第一个进入FIFO的数据会是第一个被取出的数据。在FPGA设计中,可以使用AM作为FIFO的存储单元,再通过控制逻辑来管理读写操作和指针......
  • python——多线程、多进程接口测试multiprocessing
    一、线程、进程的区别https://www.zhihu.com/question/25532384二、实际使用场景登录3个用户,然后用这3个用户的session,进行10个进程,或者10个线程的操作(因为登录后没有退出登录,也没有被其他地方登录挤掉账号,所以session在一段时间内有效。且当前系统允许使用同一个session进行多......
  • python自动化之selenium
    python+seleniumselenium是一个第三方库,python有很多库;1、什么是ui自动化?通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。2、ui自动化的优点?(1)解决重复性的功能测试和验证(2)减少测试人员在回归测试时用例漏测和验证点的漏测(3)减少冒烟测试,回归测试的......
  • Python入门
    一、入门1.1注释单行注释#多行注释'''多行注释'''"""多行注释"""指定文件的编码方式必须在第一行才有效#coding:gbk1.2格式化输出print中,使用%print("姓名:%s,年龄:%d,成绩:%.2f"%(name,age,sco......
  • CentOS7 重装yum和python
    卸载现有的Python和Yum1、删除现有Python#强制删除已安装程序及其关联rpm-qa|greppython|xargsrpm-ev--allmatches--nodeps#删除所有残余文件##xargs,允许你对输出执行其他某些命令whereispython|xargsrm-frv#验证删除,返回无结果whereispython2、删除现有的yum......
  • 第23天Linux下常用工具(二)
    目录第四章GDB调试工具4.1gdb的作用4.2调试代码的流程4.3gdb的安装4.4gdb的使用第五章makefile工程管理工具5.1makefile的作用5.2makefile的运行5.3make的安装5.4makefile的编写方法5.5makefile的语法5.6makefile使用示例第四章GDB调试工具4.1gdb的作用代......
  • Python实现批量提取Word文档中的图片(支持.doc和.docx格式)
            在工作中,我们可能会遇到需要从多个Word文档中批量提取图片的需求。如果手动操作,效率低且容易出错。因此,利用Python自动化批量提取图片是一个不错的选择。本篇文章将详细介绍如何使用Python来实现从.doc和.docx格式的Word文档中批量提取图片并保存......
  • DL00337-基于yolov11的阿尔兹海默症检测诊断含数据集python
    阿尔兹海默症是一种渐进性的神经退行性疾病,通常通过认知障碍、记忆丧失、语言障碍等症状表现出来。早期诊断是控制疾病发展的关键,但现有的诊断方法如临床评估、神经影像检查(CT、MRI等)通常具有一定的局限性。YOLOv11能够帮助提取医学影像中的有价值特征,进而辅助阿尔兹海默症的诊......
  • 【FMC155A】基于VITA57.1标准的2路500MSPS/1GSPS/1.25GSPS 14位AD采集FMC子卡模块(交流
    ​板卡概述FMC155A是一款基于VITA57.1标准的,实现2路14-bit、500MSPS/1GSPS/1.25GSPS采样率交流耦合ADC同步采集FMC子卡模块。该模块遵循VITA57.1规范,可直接与FPGA载卡配合使用,板卡ADC器件采用ADI的AD9680芯片,该芯片具有两个模拟输入通道和两个JESD204B输出数据通道对,可用于高达2......
  • 中国工业统计年鉴(1949-2023年)(前身是中国工业经济统计年鉴)“
    01、数据简介一、《中国工业统计年鉴》是一部全面反映中国工业经济发展情况的资料性年刊,系统地收录了全国各经济类型、各工业行业和各省、自治区、直辖市等工业经济统计数据,以及主要指标历史数据。二、全书包括四大部分内容:综合数据、分行业数据、分地区数据和附录。主要......