我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python 模块和包

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python 模块和包

在这里插入图片描述

文章目录

前言

Python是一种简单易学、功能强大的编程语言,而其模块和包的概念更是为我们提供了一种有效管理和组织代码的方式。模块是Python程序的基本组成单元,它是一个包含函数、变量和类的文件。而包则是由多个模块组成的一个目录,可以帮助我们更好地组织和复用代码。

在本系列的文章中,我们将从基础知识开始,逐步介绍Python模块和包的概念、语法和使用方法。

模块

什么是模块

在Python中,模块是一种组织和复用代码的方式。它是一个包含函数、变量和类的文件,以 .py 为文件扩展名。模块可以被其他程序导入和使用,以提供特定功能或实现特定任务。

Python模块使代码更易于管理和组织,同时也促进了代码的可重用性。通过将相关的功能放入不同的模块中,可以使代码更具可读性和可维护性。此外,模块还可以帮助开发人员对功能进行封装,以便在不同的项目中共享和复用代码。

导入模块

在 python 中,有以下的方式来导入模块:

  • import 模块名
  • from 模块名 import 功能名
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名

import 导入模块

前面我们也见过,当我们生成随机数的时候需要导入 random 模块,那么在 python 中可以使用 import 模块名 来导入模块。

当我们以 import 模块名 的形式导入模块的时候,使用 模块名.功能 来使用模块中的方法。

import random  # 导入random模块result = random.randint(1,10)  # 生成1-9之间的随机数print(result)

使用 import 模块名 也可以导入多个模块,但是不推荐 import 模块1,模块2...

from 模块名 import 功能

我们使用 import 模块名 导入的是该模块下的所有代码,我们也可以只导入该模块下的指定方法,并且我们调用方法的时候可以直接使用方法,而不需要加模块名。

from random import randint  # 导入random模块下的randint方法result = randint(1,10)print(result)

from 模块名 import *

from 模块名 import 功能from 模块名 import * 是相似的,只是前面一种导入方法,导入的是指定的功能,而后面一种方法导入的是该模块下的所有方法,两种导入方法调用功能的时候都只需使用功能() ,而不需要加上 模块名.功能。

from math import *print(sqrt(9))  # 3.0print(pow(3,2))  # 9.0

as定义别名

如果我们觉得模块名或者方法名太长写的时候太麻烦的时候,我们可以使用别名。
import 模块名 as 别名 来别名模块名,from 模块名 import 功能 as 别名 别名功能名。

import time as tt.sleep(2)  # 程序会停止两秒再结束
from time import sleep as slpslp(2)

当我们使用别名之后,之前的名字不能再继续使用,否则会报错

from time import sleep as slpsleep(2)

在这里插入图片描述

制作模块

在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。也就是说自定义模块名必须要符合标识符命名规则。

我们创建一个 python 文件,并且在该文件中定义一个 add_num 方法。

在这里插入图片描述

我们可以对该模块内的 add_num 方法进行测试,看方法是否能实现指定功能。

def add_num(a,b):    return a + bprint(add_num(1,2))  # 3

每实现一个模块中的方法,我们就需要进行测试,那么当我们测试完成之后,需不需要将测试代码给删除呢?如果不删除会有什么影响呢?

我们在 Test文件中导入该模块并使用该模块下的方法。
在这里插入图片描述
在这里插入图片描述

这里 3 很显然是我们测试代码里面的测试结果,import 模块名 会将该模块下的所有代码都导入,但是我们删除了测试代码的话,下次再测试又需要重新写,那我们该怎么做既能实现测试功能,又不影响其他功能呢?

使用 if __ name __ == '__ main __': 作为条件,来使该代码只会在该模块下执行,出来该模块所在的文件就不会执行测试代码。

__ name __ 是系统变量,是模块的标识符,值是:如果是自身模块,值是__ main __,否则是模块所在的文件名

我们在模块所在文件打印 __ name __。
在这里插入图片描述
在这里插入图片描述

然后在导入该模块的文件下运行代码。
在这里插入图片描述
在这里插入图片描述

我们在模块所在文件加上对应条件并执行代码。

def add_num(a,b):    return a + bif __name__ == '__main__':    print(add_num(1,2))  # 3

然后在导入该模块的文件下调用该模块的对应方法。

import my_module1print(my_module1.add_num(3,5))

在这里插入图片描述
在这里插入图片描述
这里并不会执行我们的测试代码,这样就解决了我们的问题。

注意:如果使用 from .. import ..from .. import * 导入多个模块的时候,且模块内有同名功能。当调用这个同名功能的时候,调用到的是后面导入的模块的功能。

from my_module1 import add_numprint(add_num(-3,5))  # 2def add_num(a,b):    return abs(a) + abs(b)
from my_module1 import add_numdef add_num(a,b):    return abs(a) + abs(b)print(add_num(-3,5))  # 8

模块的定位顺序

当导入一个模块,Python解析器对模块位置的搜索顺序是:

  1. 当前文件所在的目录下的所有文件
  2. 如果不在当前目录,python 则搜索在shell变量pythonpath下的每个目录
  3. 如果前面两个路径都找不到,python会查看默认路径

注意:

  • 自己的文件名不要和已有模块名重复,否则导致模块功能无法使用
  • 使用 from 模块名 import 功能 的时候,如果功能名字重复,调用到的是最后定义或导入的功能。

__ all __

但我们使用 from 模块名 import * 导入模块的时候,我们可以指定导入的方法,而不是全部方法,我们只需要在模块中定义 __ all __ = ['方法1',‘方法2'] ,这样就只会导入 __ all __ 中的方法。

__all__ = ['add_num']def add_num(a,b):    return a + bif __name__ == '__main__':    print(add_num(1,2))def sub(a,b):    return a - b

在这里插入图片描述

from my_module1 import *print(sub(1,2))

在这里插入图片描述

这里会直接提示错误。
在这里插入图片描述

Python包是一种用于组织和管理Python代码的方式。它是一个包含模块、子包和资源文件的目录,可以在Python程序中被导入和使用。包的主要目的是将相关的功能和数据组织到一个单独的单元中,以便于重用和维护。

一个包通常包含一个名为 __init__.py 的特殊文件,用于标识该目录为一个包。它可以包含其他Python模块文件(以.py为扩展名)和子包(也是一个包的目录)。

在pycharm上如何创建包

在这里插入图片描述

当我们创建完成一个包之后,我们会发现该包下会自动产生一个 __ init __.py 的文件。

在这里插入图片描述

导入包

我们首先需要在包下创建几个模块文件。

add_num.py

def add_num(a,b):    return a + b

sub_num.py

def sub_num(a,b):    return a - b

导入包有两种方式:

  • import 包名.模块
  • from 包名 import *

import 包名.模块 导入包

当我们使用 import 包名.模块 导入包的时候,我们以 包名.模块名.功能 来使用相关功能。

import mypackage.add_numimport mypackage.sub_numprint(mypackage.add_num.add_num(10,20))  # 30print(mypackage.sub_num.sub_num(50,20))  # 30

from 包名 import * 导入包

当我们使用 from 包名 import * 导入包的时候,我们需要在 __ init __.py 文件中添加 __ all __ = [ ] 来设置允许导入的模块列表。

__all__ = ['add_num','sub_num']

使用 模块名.功能 的方法来使用相应的功能。

from mypackage import *print(add_num.add_num(10,20))  # 30print(sub_num.sub_num(50,20))  # 30

如果我们将 __ init __ 文件中的 __ all __ = [ ] 给删除或者注释掉的话,会出现什么情况乱。
在这里插入图片描述
在这里插入图片描述
所以但我们使用 from 包名 import * 导入包的时候一定要记得设置 __ init __ 文件里的 __ all __ = [ ] 来设置允许导入的模块列表。

在这里插入图片描述

来源地址:https://blog.csdn.net/m0_73888323/article/details/131743808

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python 模块和包

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python之模块和包

1 模块化一般来说,编程语言中,库,包,模块是同一种概念,是代码组织方式 python中只有一种模块对象类型,但是为了模块化组织的便利,提供了一个概念: 包模块(module):指的是python的源代码文件 包(package):指的是模
2023-01-31

详解Python模块化--模块(Modules)和包(Packages)

目录引言Python Modules模块导入模块①导入整个模块②导入模块中的特定函数③导入模块中的所有函数给导入的模块一个别名单独运行模块加速模块加载Python Packages包引用包(Package)中的模块引用包(Package)中
2022-06-02

模块和包

我们经常说模块模块的,究竟什么是模块呢?  一个模块就是包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀  但其实import加载的模块分为四个通用类别:    1.使用Python编写的代码(.py文件)    2.
2023-01-30

Python模块与包

一、模块的定义与使用1.1、模块的定义Python中,模块在物理形式上表现为以.py 结尾的代码文件  一个文件被看作一个独立的模块, 一个模块也可以被看作一个文件; 每个模块都有自己的名称空间。Pyhton允许”导入”其他模块以实现代码重
2023-01-31

Windows下Python包和模块的安

上一章中,介绍了Anaconda的安装,安装好Anaconda后,就默认安装了包管理工具pip。有的人喜欢使用easy_install,但是这需要你先安装easy_install,其实没必要,目前官方推荐使用pip。pip安装包或模块很简单
2023-01-31

python中有哪些包和模块

这篇文章将为大家详细讲解有关python中有哪些包和模块,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python有哪些常用库python常用的库:1.requesuts;2.scrapy;
2023-06-14

Python 模块与包

一、模块 模块就是一个包含了python定义和申明的文件,文件名就是模块的名字加上.py的后缀/模块的分类:    1、使用python编写的py文件    2、已被编译位共享库或者DLL或C或者C++的扩展    3、包好一组模块的包 
2023-01-30

python -模块与包

********************************模块与包*****************************一、模块在 Python 中,一个.py文件就称之为一个模块(Module)。•大大提高了代码的可维护性;•编
2023-01-31

Python面向对象之模块和包

模块模块的概念模块是Python程序架构的一个核心概念所有以.py结尾的源文件都是一个模块;模块名也是标识符,需要遵循标识符的命名规则;在模块中定义的全局变量,类,函数,都是直接给外界使用的工具;模块就好比一个工具包,而里面的函数和变量就是
2023-01-31

python3--os模块,模块和包(import... , from..import...)

os模块是与操作系统交互的一个接口使用前需要 import osos.getcwd()获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname")改变当前脚本工作目录;相当于shell下cdos.curdir
2023-01-30

【Python3】Python模块与包

一、模块导入1. 定义Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你
2023-01-31

Python基础——模块与包

在Python中,可以用import导入需要的模块、包、库、文件等。 把工作路径导入系统路径 import os#os是工作台import sys#sys是系统sys.path.append(os.getcwd())sys.path写脚本文
2023-01-31

Python使用scapy模块发包收包

前言众所周知,我们每天上网都会有很多数据包需要发送,然后处理在接受在发送,这样一个循环往复的过程这里就显示了很多数据包的发送接收数据,那什么是包呢?下面一起看看 包( packet )是网络通信传输中的数据单位,一般称之为数据包,其主要由源
2022-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录