模块与包
模块的导入
可以说,Python的灵魂之一就是他丰富多样的库,这些就是他人已经写好的模块化的工具,使用者只需要调用,避免造轮子的工作,例如NumPy,Matplotlib等
模块在本质上来说就是一个Python文件
在使用之前,我们需要使用导入模块的语句
import 模块名 [as 别名] # 这里的方括号表示可选项
当你想使用这个模块中的函数时,只需要
模块名.函数名
即可
我们为了之后对模块的各个函数调用方便,可以取一个简单的别名,例如NumPy->np,Pandas->pd等
还有一种导入的方式是
from 模块 import *
这样是直接导入了模块中的所有函数,当然也可以将*替换成你想要的对象或者函数
这样在你使用他的时候就可以像Python自带的函数一样,不需要写模块名称了
编写自己的模块
对于C和C++抑或是Java等各式各样的语言,都有一个main函数作为所有程序的入口,但是对于Python来说,他对于一个Python文件就是从头到尾依次解释执行,没有统一的入口
但是模块也是一个Python文件,我们在导入之后,并不希望导入的函数依次被执行,因此在Python解释器中有一种内置变量,就是 __name__ 他的意思就是模块名,当你在这个Python文件内执行程序的时候他会自动被命名为__main__,但是当他被导入到别的Python文件中时,他就会变成模块的名称,我们可以以此进行区分
例如
# 模块 计算两个数的和 起名为Compute.py
def add(x,y):
return x+y
if __name__=='__main__':
print(add(1,1))
import Compute as cp
print(cp.add(1,2))
包
我们知道模块的本质就是一个Python文件,但是在自己创建模块的时候,只有在与执行的Python文件相同时,才能进行导入,但是当大量的模块都存在于一个文件夹时会显得十分臃肿,于是我们引入包的概念
包实际上就是一个文件夹,其中包含着许多的模块
例如我们打开一个包看看里面有什么
这是一个json5的一个包,之后我们也会讲到他的使用
这里有两个文件的名称与其他文件明显不同__init__.py和__main__.py
我们主要介绍__init__.py,通常他的文件内容为空,他的作用就是要告诉Python解释器,这个文件夹是一个包,相关的模块就在这个文件夹内
因此我们想创建包时,只需要创建一个文件夹和一个__init__.py文件即可,当然还需要将这个文件夹的路径配置到一个系统模块sys.path中,他的本质上就是一个列表,列表中的内容就是要告诉Python这里有一个模块可以用
那我们想要使用包中的模块的语法如下,例如json5的tool.py
import json5.tool
当然我们也可以在自己的Python文件夹中创建一个__init__.py文件,里面可以预先导入一些你想使用的包和模块,类似于C/C++中的头文件,他会自动执行
预告:目前的打算是先介绍Python的一些内建模和他们的基本使用,再讲解Python面向对象的内容,包括封装继承多态等特性,最后详细介绍NumPy,Pandas,Matplotlib,Pyecharts等内容,Python的基础内容就告一段落,之后进阶会打算做一些Python的高阶技巧,MySQL(数据库),PySpark(大数据计算),机器学习入门的相关内容其中MySQL和PySpark只是做简单使用介绍,会在之后出专门的内容进行详尽的讲解,敬请期待