python模块和包

本文介绍了Python中模块的管理和使用,包括如何按功能将代码划分为不同模块,如tools.py、common.py和thirdparty.py。通过导入模块,可以简化代码逻辑,提高代码可读性和维护性。Python模块可分为官方模块、自定义模块和第三方模块。当模块过多时,可以使用包进行组织。此外,文章还讲解了Python导入模块的路径、如何避免导入冲突以及如何使用pip安装和卸载第三方模块。
摘要由CSDN通过智能技术生成

假设我们的代码都写在一个py文件这时如果有上千上万条的话那么久难以维护

由此我们可以把代码按功能划分到不同的文件这些文件就是python的模块

例:

工具功能代码:tools.py

公用函数代码:common.py

第三方相关引入的代码:thirdparty.py

通过这些代码组织我们就可以简化我们的代码逻辑

有了这些我们就可以在代码里按需来引入这些模块

例:

#main.py

import tools
print(tools.say_hello())

main.py属于自身的调用模块

下一行的代码是导入自定义tools.py模块

第三行就是调用tools.py模块的函数

通过定义,引入,调用我们就在main.py这个模块里面调用了我们自己的模块

模块可以分成

官方模块 自定义模块 第三方模块

如果模块多了也难以维护

这样我们就可以把模块划分到不同的包

也就是不同的文件夹也就是python的包

python定义模块

Python语言本身提供了非常多的模块,比如数学模块math、cmath、decimal、statistics;文件模块pathlib、stat、shutil等;除了使用官方模块,有时候也需要自定义模块。
如果我们需要创建一个tools模块,用来实现众多的工具函数,那么我们可以创建一个tools.py的文件,并在这个文件里面实现一些函数,如:say_hello()函数、say_goodbye()

# tools.py
def say_hello():
    print('hello')

def say_goodbye():
    print('goodbye')

这样就定义了一个叫tools的模块,接着就可以使用这个模块了,在使用之前,我们需要先导入模块

Python导入模块

要使用一个模块,我们必须首先导入该模块。Python使用import语句导入一个模块,Python官方提供很多有用的模块,比如:os模块、sys模块、time模块、math模块等等。
导入官方模块,不需要考虑路径的问题,例如,导入系统自带的模块 math,直接导入即可。如果是导入自定义模块,则需要考虑路径问题,我们下节课继续学习。
导入官方模块math:

import math

导入以后,你就可以认为math是一个指向已导入模块的变量,通过该变量,我们可以访问math模块中所定义的所有公开的函数、变量和类:

# 属性:圆周率
>>> import math
>>> math.pi
3.141592653589793

# 函数:次方
>>> math.pow(2, 3)
8.0

如果希望导入模块的指定部分属性或函数,那么使用from...import...语句。

>>> from math import pi
>>> print(pi)
3.141592653589793

这个时候,由于pow()函数没有导入,所以是不能使用pow()函数的。
如果希望导入模块里面的所有内容,那么使用from ...import *语句。

>>> from math import *
>>> print(pi)
3.141592653589793
>>> pow(2, 3)
8.0

如果从一个模块导入函数,有可能会遇到导入的函数与本文件的函数冲突的情况。例如:本文件定义了一个pow()函数,同时从math模块也导入了一个pow()函数,这种情况下就会引起冲突;事实上,这种冲突的情况经常发生。
有两种方法可以解决这个问题,第一种是直接导入模块,不指定导入模块里面的具体内容;第二种方法就是使用from ... import as ...语句,as类似重命名,可以把导入的函数或属性重命名为别的名字。

>>> from math import pow as mathpow
>>> mathpow(2, 3)
8.0

python模块导入的路径

导入官方模块的时候,不需要考虑路径问题,这是因为在搜索模块的时候,会默认包含官方模块的路径,所以导入官方模块不需要考虑路径的问题。
如果需要导入自定义模块,则需要了解Python导入模块搜索的路径。
通过sys模块,可以知道导入模块的路径。

>>> import sys
>>> sys.path
['', '/data/miniconda3/lib/python3.8', '/data/miniconda3/lib/python3.8/site-packages']

它返回的是一个列表,表示的是在搜索Python模块时,会搜索的路径,在示例中,返回了四个路径。我们分析一些关键路径:
第一个路径是'',它是一个空字符串,表达的是当前路径的意思。
第二个路径是/data/miniconda3/lib/python3.8,它是Python默认模块的存放的路径,在这个路径下,可以发现有os、sys等模块的代码。
第三个路径是/data/miniconda3/lib/python3.8/site-packages,它是第三方模块代码的存放路径,在这个路径下,存放的是需要安装的第三方模块。

那如何使用我们前面定义的tools.py模块呢?
我们在tools.py同级目录,创建main.py文件:

# main.py

import tools # 导入模块

tools.say_hello() # 调用模块里面的say_hello()函数
tools.say_goodbye() # 调用模块里面的say_goodbye()函数

就可以运行了。
因为在搜索包的路径时,会搜索当前路径(上述:sys.path结果的第一项),因此在同一个目录内的tools.py模块,可以被搜索到,所以能够import进来。

python安装第三方模块的方法

尽管Python的官方模块已经提供了非常强大的能力,但是仍有大量热心开发者提供了非常好用的第三方库,在实际开发中,也会经常使用,比如Web开发框架,Django、Flask,异步任务框架:Celery等。
在安装Python的时候,Python环境提供了安装第三方模块的工具:pip,通过这个工具,可以非常快捷的安装第三方模块。
安装Django模块:

pip install django

卸载Django模块:

pip uninstall django

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值