Python中模块和包基础学习

简介: Python中模块和包基础学习

模块


Python中的模块是指一个文件,可以包含函数、类、变量和可执行代码等,并且可以被其他程序引入和使用。使用模块可以使得代码更加模块化和易于维护。


Python中的模块分为两种类型:内置模块和外部模块。内置模块是指Python自带的模块,如math、random、datetime等,可以直接使用。外部模块是指需要通过pip等工具安装的模块,如numpy、pandas等。


Python中的模块可以通过import语句引入,例如:

import math 
print(math.pi)

上述代码中,引入了math模块,并输出了pi这个变量。

引入模块

除了import语句之外,Python还提供了其他几种方式来引入模块,如from...import语句、import...as语句等。下面是一些模块操作的代码示例:


使用from...import语句引入模块中的指定变量或函数

1. from math import pi 
2. 
3. print(pi)

上述代码中,我们只引入了math模块中的pi变量,而没有引入其他内容。

使用import...as语句给模块起别名

1. import math as m 
2. 
3. print(m.pi)

上述代码中,我们使用import...as语句给math模块起了一个别名m,并输出了pi这个变量。

使用dir()函数查看模块中的所有变量和函数

1. import math 
2. 
3. print(dir(math))


上述代码中,我们使用dir()函数查看了math模块中的所有变量和函数。

使用__name__变量判断模块是被导入还是直接执行

if __name__ == '__main__': 
    print('This is the main program.') 
else: 
    print('This is a module.') 


上述代码中,我们使用__name__变量判断模块是被导入还是直接执行,如果是直接执行,则输出This is the main program.,否则输出This is a module.。


以上是一些Python模块的基本介绍和操作示例。在实际开发中,模块的使用和操作也是非常常见和重要的,熟练掌握这些知识点可以提高代码的复用性和可维护性。



在 Python 中,包(Package)是一个有层次结构的文件目录,其中包含了模块(Module)和子包(Subpackage)。包的作用是将模块组织在一起,提供更好的命名空间管理和模块复用机制。


Python 中的包需要满足以下两个条件:


1. 包目录下必须包含一个名为 __init__.py 的文件。这个文件可以是空文件,也可以包含一些 Python 代码。


2. 包目录必须在 Python 的模块搜索路径中。


下面是一个包的示例,其中 mypackage 是包的名称,__init__.py 文件是必需的。

mypackage/
 ├── __init__.py 
 ├── module1.py
 ├── module2.py
 └── subpackage/
   ├── __init__.py
   └── module3.py 


在这个示例中,mypackage 是一个包,它包含了两个模块 module1.py 和 module2.py,还包含了一个子包 subpackage,子包中包含了一个模块 module3.py。


包中的模块可以通过 import 语句来使用。例如,要使用 module1.py 中定义的函数,可以使用以下代码:

from mypackage import module1 
module1.my_function() 

如果要使用子包中的模块,可以使用以下代码:

1. from mypackage.subpackage import module3 
2. 
3. module3.my_function()


注意

在使用包时,需要注意以下几点:


1.包目录名不能和 Python 内置模块名相同,否则会导致导入内置模块时出错。


2.包名应该遵循小写字母、单词之间用下划线分隔的命名规范,这样可以提高代码的可读性。


3.在 __init__.py 文件中可以定义包级别的变量和函数,这些变量和函数可以被包中的模块共享。


4.在包的 __init__.py 文件中可以使用 __all__ 变量来指定包的公共接口,只有 __all__ 中列出的模块和变量才会被导入到 from mypackage import * 语句中。


示例


下面是一个包的示例,包含了一个 __init__.py 文件和一个模块 module1.py:

1. mypackage/
2.  ├── __init__.py
3.  └── module1.py


__init__.py 文件中定义了一个变量 __version__ 和一个函数 my_function():


1. __version__ = '1.0.0'
2. 
3. def my_function(): 
4. print('Hello from my_function()')

module1.py 中使用了包中的变量和函数:

from mypackage import __version__, my_function
def main():
    print(f'My package version is {__version__}')
    my_function()
if __name__ == '__main__':
    main()


相关文章
|
14天前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
116 47
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
11天前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
|
2月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
118 3
|
3天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
1月前
|
Python
Python Internet 模块
Python Internet 模块。
125 74
|
1月前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
2月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
130 63
|
29天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
20天前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
18天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
26 3

热门文章

最新文章