首页 > 编程语言 >python之模块和包的导入与使用,pip的使用(13)

python之模块和包的导入与使用,pip的使用(13)

时间:2024-09-17 12:24:14浏览次数:10  
标签:13 python 别名 名字 导入 模块 pip import

文章目录

1、模块

模块就是很多个功能的集合体,我们的程序可以通过导入模块,来使用这个模块里面的功能;从而提升程序的开发效率

在python中模块本质上就是一个 .py文件,在这个文件中有着许多函数用来定义功能;导入模块实际上就是导入 .py文件,导入后就可以直接调用里面的函数了;如:
ah.py文件 其 模块名就是 ah,我们通过模块名导入模块

1.1 模块的分类

1.1.1 内置模块

python自带的,安装好python解释器后,就拥有的模块,里面的功能都是默认的;通常内置函数就在这些模块当中

1.1.2 第三方模块(比较重要)

需要到指定地方进行下载的模块,通常下载的一个模块中就包含了许多功能;如:web、Django、flask等;python中的第三方模块超20万个,我们只需按规则使用,针对性的学习

1.1.3 自定义模块

自己创建的模块,里面的功能由自己定义;如下:

在这里插入图片描述

1.2 模块的导入

模块需要导入才能使用里面的功能

1.2.1 单个模块的导入

语法格式:import 模块名,注意:导入模块后会立即执行里面的代码

  • 若需要使用模块中的名字,需要加上 模块名. 作为前缀,避免与本地相同名字冲突

语法格式:模块名.名字

案例:
在这里插入图片描述

import ah # 导入模块 ah,立即执行其中的代码
ah.a() # 调用模块中的函数

输出结果:

我是阿豪
666

tips:
一般来说py文件的名字可以任意取,但当该文件作为模块来使用时,就需要注意了,要避免与内置模块重名,以免调用时发生冲突,可以参考变量的取名规则

1.2.2 同时导入多个模块

语法格式:import 模块名1,模块名2,...,我们在编写代码时建议一行导入一个模块,同时导入多个模块不方便扩展

1.2.3 模块导入规范

  1. 通常我们会将导入的模块写在最上方,方便全局可用,若写在局部内,则只能在局部使用(在个别情况下使用局部导入)

  2. 三种类型模块的导入顺序,从高到低依次为:内置模块、第三方模块、自定义模块

1.2.4 给导入的模块取别名

  1. 单个模块取别名

语法格式:import 模块名 as 别名
注意:别名取好后,就只能使用别名来调用模块内的功能了,如:别名.名字

  1. 多个模块取别名

语法格式:impotr 模块名1 as 别名1, 模块名2 as 别名2,...

1.2.5 同时导入模块和名字

  1. 导入单个名字

语法格式:from 模块名 import 名字
这种导入方式在导入模块的同时还导入了模块中的名字,这样我们就可以不用加前缀,直接调用模块中的名字

案例:
在这里插入图片描述

from ah import a # 调用模块 ah 和 函数 a
a() # 输出结果:666
  1. 同时导入多个名字

语法格式:from 模块名 import 名字1,名字2,...

总结:
该方法的好处是不用通过加上 前缀来使用模块中的名字,坏处是直接导入名字可能会遇到同名覆盖的问题

1.2.6 给导入的名字取别名

语法格式:

  1. from 模块名 import 名字 as 别名
  2. from 模块名 import 名字1 as 别名1,名字2 as 别名2,...
  3. from 模块名 impot 名字1,名字2 as 别名2,...

说明:
给名字取别名可以避免同名覆盖问题

扩展:导入模块中所有的名字(不推荐)

语法格式:from 模块名 import *
这种导入方式可以一次性导入模块中所有的名字,以下划线开头的名字不会被导入;如:_ab,_name

注意:
这种导入方式无法取别名,容易发生同名覆盖的现象,所以不推荐使用

2、模块的查找路径和优先级

我们自定义的模块通常放在指定的路径下,那么内置模块又放在什么位置呢?当我们调用模块时,python是如何查找该模块以及各类模块查找的优先级是怎样的?

2.1 查找路径

我们知道模块的本质就是一个.py文件,这些文件存放在不同路径下,我们可以通过以下方法,找到这些路径

import sys # 导入内置模块 sys
print(sys.path) # 打印模块下的名字 path,得到模块的查找路径

说明:
打印 sys.path得到了一个列表,列表中的元素就是这些模块的存放路径了,而python就是按照这个列表中的路径,从左往右依次查找;默认第一个路径代表当前文件夹,后面的路径为python的安装路径

拓展:
我们通过pip下载的第三方库默认是安装到下面这个路径中:python\\lib\\site-packages

2.2 优先级

从上面我们知道,python按照 path这个列表中的路径,从左往右依次查找;当在前面的路径找到指定模块后就会停止查询,不会继续向后寻找了;当模块不在这个列表中的路径中时,我们还可以通过 append()和insert()命令将模块所在路径插入到列表中任意位置

3、包

包本质上也是一个模块,若模块是文件,就相当于一个文件夹,用来管理模块的

3.1 python中的包

在python中一个文件夹就可以当做一个包

tips:
在python2.0版本,文件夹里必须要有一个文件 __init__.py,这个文件夹才能算作一个包;而在python3.0版本没有这个规定,但为了规范,一般还是会放置该文件

在pycharm中有个快捷方式 python package,可以直接创建一个包,用该方法创建的文件夹自带 __init__.py文件;如:
在这里插入图片描述
在这里插入图片描述

3.2 包的导入

3.2.1 直接导入

语法格式:import 包名
包被导入后,会立即执行其中 __init__.py 文件中的代码

案例:
在这里插入图片描述
在这里插入图片描述

3.2.2 导入包下指定模块

  • 方法1:

语法格式:import 包名.模块名
调用模块下的名字:包名.模块名.名字

给模块取别名:
语法格式:import 包名.模块名 as 别名
调用模块下的名字:别名.名字

  • 方法2:

语法格式:from 包名 import 模块名
取别名:from 包名 import 模块名 as 别名

  • 方法3:

语法格式:from 包名.模块名 import 名字
给名字取别名:from 包名.模块名 import 名字 as 别名

注意:
当需要导入包下多个模块时,模块间用逗号隔开即可;当一个包下还有包时,我们可以通过 . 来连接;如:from 包名1.包名2.模块名 import 名字

4、第三方模块的给管理(pip的使用)

我们知道第三方模块就是别人写好的python文件,而我们需要到指定地方去下载它,下载好的模块默认保存在python安装路径下: python/lib/site-package;同时我们也可以在 sys.path 内查找到该路径
python为了更方便的管理第三方模块,单独设立了一个功能,也就是 pip 了,我们往下看

4.1 pip的基本使用

pip 默认加入到环境变量中,我们可以直接在cmd 命令行中使用它

  1. 查看所有下载的第三方库
    命令:pip list
    在这里插入图片描述

  2. 下载第三方库
    命令:pip install 库名
    在这里插入图片描述

  3. 卸载第三方库
    命令:pip uninstall 库名

注意:
pip命令下载第三方那三个库默认都是在外网上进行下载,速度非常慢;这里我们可以通过换源到国内进行下载,可以大大提高下载速度
命令:pip install 库名 -i 镜像源地址

  • 常用镜像源地址
    豆瓣:https://pypi.douban.com/simple/
    清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
    阿里云:https://mirrors.aliyun.com/pypi/simple/
    中国科技大学:https://mirrors.ustc.edu.cn/pypi/simple/ps/

案例:
在这里插入图片描述

标签:13,python,别名,名字,导入,模块,pip,import
From: https://blog.csdn.net/m0_59470317/article/details/140912888

相关文章

  • Python中的逻辑运算符:解锁编程世界的隐形钥匙
    引言逻辑运算符是任何编程语言的基础组成部分之一,在Python中也不例外。它允许我们基于一个或多个布尔表达式的真假值来决定程序的行为。在日常开发工作中,逻辑运算符广泛应用于条件判断、循环控制等场合,是构建复杂逻辑不可或缺的一部分。掌握好逻辑运算符,不仅可以提高代码的......
  • Python中的“with”语句:解锁优雅资源管理的秘密
    引言在日常开发过程中,我们经常会遇到需要打开文件、建立网络连接或数据库会话的情况。传统的做法是手动打开资源,在使用完毕后记得关闭。但这种方法存在明显不足:一旦在使用过程中发生异常,很容易忘记关闭资源,导致内存泄漏等问题。而“with”语句提供了一种更安全、简洁的方式来管理......
  • Python中的魔法:探索自定义Context Manager的魅力
    引言在日常开发中,我们经常需要处理各种资源管理的问题。比如,打开一个文件后需要记得关闭;使用完数据库连接后需要释放等。如果这些操作处理不当,可能会导致内存泄漏或者其他资源浪费的问题。ContextManager的设计正是为了解决这些问题而生,它提供了一种自动化的资源管理方式。那么,如......
  • 软件工程结对项目 3:python实现自动生成小学四则运算题目的程序
    这个作业属于哪个课程广工计院计科34班软工这个作业要求在哪里作业要求团队成员1庄崇立3122004633团队成员2罗振烘3122004748这个作业的目标结对合作完成小学四则运算题目的程序,熟悉项目开发流程,提高团队合作能力一、GitHub地址二、需求1.题目:实现一......
  • python- +和+=的区别
     区别:+使用__add__函数,返回新地址+= 可变数据时使用__iadd__函数,返回原地址;不可变数据用__add__函数 不可变数据#不可变数据+和+=都用__add__函数i=10i=i+2print(id(i))i+=2print(id(i)) 可变数据#可变数据+使用__add__函数,返回新地址#......
  • macOS Ventura 13.7 (22H123) 正式版发布,ISO、IPSW、PKG 下载
    macOSVentura13.7(22H123)正式版发布,ISO、IPSW、PKG下载2024年9月17日凌晨1点,TimCook领导的Apple今天发布了macOS15Sequoia正式版,iPhone镜像、密码应用程序、窗口平铺更新等带来全新体验。Apple还为那些无法升级到Sequoia的用户发布了macOSVentura13.......
  • Python Web开发中的扩展与插件开发:从自定义到打包与发布
    PythonWeb开发中的扩展与插件开发:从自定义到打包与发布目录⚙️Flask中的自定义扩展开发......
  • Python Web 开发中的国际化与本地化处理
    PythonWeb开发中的国际化与本地化处理目录......
  • => ERROR [internal] load metadata for docker.io/library/alpine:3.13+vscode+python
    遇到这个问题,找了很久,网上也没有找到什么解决办法,我就已经解决了问题,分享一下。这种情况应该是网络的原因,目前我找到了两种解决方法,已经成功解决。1.在终端手动拉取镜像,手动拉取镜像可以避免网络问题2.使用国内镜像加速器打开DockerDesktop。进入Settings->DockerEn......
  • Python 操作 MySQL 数据库
    Python操作MySQL数据库Python标准数据库接口为PythonDB-API,PythonDB-API为开发人员提供了数据库应用编程接口。Python数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoftSQLServer2000InformixInterbaseOracleSybase......