零基础学Python|Python进阶学习第八天--模块

作者主页:编程指南针

作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师

主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享

收藏点赞不迷路 关注作者有好处

文末获得源码

​# Python进阶学习

二,模块

模块是Python中很重要的一个设计,它主要是用来封装一些可重用的代码来供别人或自己使用。函数是用来封装代码的,那么一个模块可以包含多个函数来被别人使用,我们将一些封装的函数和变量封装到一个.py文件中,别人在使用时,可以使用import语句导入后直接使用,非常方便。就像我们导入java的类一样。python中提供了大量的内置模块,也有很多第三方的模块库供我们使用,同时我们也可以自定义模块进行使用。

2.1 创建模块

1.文件名后缀必须为.py

2.模块名尽量不要与自带的模块库中的名字一样

示例:将我们定义的函数封装到mathadd.py文件中

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

2.2 导入并使用模块

1.使用 import module [as alias]

如果模块名比较长,可以使用as alias设置名,通过别名使用,否则可以不用。但是在调用模块中的函数或变量时,需要加上模块名。如果同时导入多个模块,建议分开导入,也可以一次性导入,用逗号分隔。

示例:

import mathadd

result = mathadd.add(1,2)
print(result)

2.使用from … import 导入模块

使用这种方式导入使用,引入模块中的变量或函数时,不必再加函数名。from modules import functions

from mathadd import add

result = add(1,2)
print(result)
from mathadd import *   #表示导入模块中所有的元素

2.3 模块搜索目录

当我们使用import 来导入模块时,它是怎么做到搜索到这个模块并导入的呢。默认情况下,会按以下顺序来查找。

(1)在当前目录(即执行python脚本文件所在目录)下查找

(2)到PYTHONPATH(环境变量)下的每个目录中查找。

(3)到Python的默认安装目录下查找。

以上各个目录的具体位置保存在标准模块sys的sys.path变量中,可以通过以下代码输出具体的目录位置查看:

import sys
print(sys.path)

如果我们要导入的模块不在path变量中,则报错提示导入的模块不存在。

我们可以根据需要通过以下三种方式将指定的目录添加年sys.path中去。

1.临时添加:这种方式只要当前执行的窗口中有效,窗口关闭即失效。

import sys
sys.path.append('要添加的目录')

2.增加.pth文件(推荐)

找到当前安装的Python中的Lib\site-packages子目录,创建一个扩展名为.pth的文件,文件名任意,把要添加的目录写入这个文件中即可。这种方式只对当前版本的 python有效。

3.在PYTHONPATH环境变量中添加

在当前操作系统的环境变量设置中,添加或编辑PYTHONPATH环境变量,将要添加的目录添加或追加进去即可生效,这种方式对所有的Python版本均生效。

2.4 以主程序的方式运行

我们把刚才的案例改一下:mathadd.py中添加一条输出语句

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

print("我来了.....")

导入模块并执行方法:

from mathadd import add

result = add(1,2)
print(result)

输出结果:

我来了.....
3

我们只想调用add,却把print语句也执行了。在调用模块中的代码执行时,将会执行所有的模块的中的可执行代码。这不是我们想要的,怎么解决?

只需要在原模块中的执行代码的地方添加一个if语句判断是否主程序执行即可:

def add(a,b):
    return a+b
if __name__ == '__main__': 
    print("我来了.....")

每个模块中都有一个记录模块名字的 _ _ name _ _,如果一个模块不是被导入到其它模块或文件中执行的,那么它就在顶层的模块 _ _ main _ _ 中执行,加判断也就是如果直接运行mathadd.py是可以执行这段代码的,否则不执行。

2.5 python中的包

包主要是分门别类的存放定义的相关模块使用的,也可以有效避免重名模块的冲突。

在物理上包就是一个文件夹,但是每个文件夹中必须要有一个 _ _init _ _.py文件,这个文件中可以不写代码,也可以根据需要编写代码,编写的代码会在包被导入时自动执行。在相关的开发工具中,比如IDEA安装了Python插件后,可以直接在工程中右键创建 Python Package,创建后会自动生成一个 _ _init _ _.py文件。

在这里插入图片描述

创建一个 settings的包:
在这里插入图片描述

在包被创建后,可以在此包下创建相关的模块进行存放。要导入导下的模块进行使用,通常有以下三种方式:

(1) 通过"import+完整包名+模块名"形式加载指定模块

示例:创建size 模块,并定义两个变量width 和 height

import settings.size
if __name__ == '__main__':
  print('宽度:',settings.size.width)    #在调用变量时需添加settings.size前缀
  print('高度:',settings.size.height)    #在调用变量时需添加settings.size前缀

(2)通过"from+完整包名+import+模块名"形式加载指定模块

示例:

from settings import size

if __name__ == '__main__':
    print('宽度:',size.width)    #在调用变量时需添加size前缀
    print('高度:',size.height)    #在调用变量时需添加size前缀

(3)通过"from+完整包名+模块名+import+定义名"形式加载指定模块

示例:

#导入包中的模块 (3)
from settings.size import width,height

if __name__ == '__main__':
    print('宽度:',width)    #在调用变量时无需添加前缀
    print('高度:',height)   #在调用变量时无需添加前缀

2.6 引用其它的模块

1.导入和使用标准模块

python内置了很多标准模块供我们使用 ,直接通过import 导入即可使用 :

示例:

#导入标准模块库
import random

print(random.randint(0,10))   #输出一个0-10之间的随机整数

python中常用的标准库如下:
在这里插入图片描述

2.第三方模块的下载与安装

除了内置的标准模块外,还有很多丰富的第三方的模块供我们使用,不过要下载和安装才可以使用。这些大都可以在 http://pypi.org 中找到。我们一般使用pip进行在线安装即可,也可以根据需要进行离线安装。

pip command modules
* command:用于指定要执行的命令。常用的有 install、uninstall、list等
* modulename:模块名

示例:

pip install numpy
pip list #查看己安装的模块

有关于Python中的模块学习今天就到这里,在后期的项目开发中,我们还会经常用到,到时候我们具本再说。

猜你喜欢

转载自blog.csdn.net/whirlwind526/article/details/132402820