前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python进阶教程笔记(四)模块和包

Python进阶教程笔记(四)模块和包

作者头像
Lemon黄
发布2020-10-30 11:42:52
4710
发布2020-10-30 11:42:52
举报
文章被收录于专栏:Lemon黄Lemon黄

一、定义模块

Python语言本身提供了非常多的模块,比如数学模块math、cmath、decimal、statistics;文件模块pathlib、stat、shutil等;除了使用官方模块,有时候也需要自定义模块。

如果我们需要创建一个tools模块,用来实现众多的工具函数,那么我们可以创建一个tools.py的文件,并在这个文件里面实现一些函数,如:say_hello()函数、say_goodbye()函数。

代码语言:javascript
复制
# tools.py
def say_hello():
    print('hello')

def say_goodbye():
    print('goodbye')

这样就定义了一个叫tools的模块,接着就可以使用这个模块了,在使用之前,我们需要先导入模块,下面我们来详细学习。

二、导入模块

要使用一个模块,我们必须首先导入该模块。Python使用import语句导入一个模块,Python官方提供很多有用的模块,比如:os模块、sys模块、time模块、math模块等等。

导入官方模块,不需要考虑路径的问题,例如,导入系统自带的模块 math,直接导入即可。如果是导入自定义模块,则需要考虑路径问题,我们下节课继续学习。

导入官方模块math:

代码语言:javascript
复制
import math

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

代码语言:javascript
复制
# 属性:圆周率
>>> import math
>>> math.pi
3.141592653589793

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

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

代码语言:javascript
复制
>>> from math import pi
>>> print(pi)
3.141592653589793

这个时候,由于pow()函数没有导入,所以是不能使用pow()函数的。

如果希望导入模块里面的所有内容,那么使用from ...import *语句。

代码语言:javascript
复制
>>> from math import *
>>> print(pi)
3.141592653589793
>>> pow(2, 3)
8.0

如果从一个模块导入函数,有可能会遇到导入的函数与本文件的函数冲突的情况。例如:本文件定义了一个pow()函数,同时从math模块也导入了一个pow()函数,这种情况下就会引起冲突;事实上,这种冲突的情况经常发生。

有两种方法可以解决这个问题,第一种是直接导入模块,不指定导入模块里面的具体内容;第二种方法就是使用from ... import as ...语句,as类似重命名,可以把导入的函数或属性重命名为别的名字。

代码语言:javascript
复制
>>> from math import pow as mathpow
>>> mathpow(2, 3)
8.0

三、模块导入的路径

导入官方模块的时候,不需要考虑路径问题,这是因为在搜索模块的时候,会默认包含官方模块的路径,所以导入官方模块不需要考虑路径的问题。

如果需要导入自定义模块,则需要了解Python导入模块搜索的路径。

通过sys模块,可以知道导入模块的路径。

代码语言:javascript
复制
>>> 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文件:

代码语言:javascript
复制
# main.py

import tools # 导入模块

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

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

四、安装第三方模块的方法

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

代码语言:javascript
复制
pip install django

卸载Django模块:

代码语言:javascript
复制
pip uninstall django
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lemon黄 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、定义模块
  • 二、导入模块
  • 三、模块导入的路径
  • 四、安装第三方模块的方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档