目录
模块(moudle)
模块是一个python文件,其中有类、函数、变量等,我们可以通过导入模块来使用模块内的相关功能。
模块的导入
[from 模块名] import [模块|类|变量|函数|*] [as 别名]
常用的组合形式:
1.
import 模块名
2.
from 模块名 import 类、方法、变量等
3.
from 模块名 import *
*代表该模块内的所有内容
4.
import 模块名 as 别名
5.
from 模块名 import 类、方法、变量等 as 别名
自定义模块的制作
我们可以自定义模块,在其中输入我们想要的功能。只需要建立一个python文件进行写入即可。
模块的同名
不同模块拥有同名的功能时,如果都被导入,那么后导入的会覆盖先导入的。
__main__
if __name__ == "__main__":
这个语句表示,只有该程序是直接执行的才会进入if语句内部执行语句内部的代码,如果该程序是被作为模块导入的,那么不会进入if语句。常用于写好模块后对模块内的方法进行测试,也不用在导入模块时删除测试的内容。
例子:
当没有__main__时:
虽然我们在主文件中仅仅导入了my_moudle模块,但是其直接执行了模块中的测试语句。
所以我们需要使用__main__进行控制,将测试的语句只在模块中执行。
此时主文件中便不再执行模块中测试的代码了:
__all__
用来控制import*时哪些功能可以被导入,列表形式。
例如:
在自定义模块中我们写了三个功能,分别是两数的相加、相减与相乘。
在主文件中,我们通过from my_moudle import *来导入模块,则三个功能都可以在主文件中使用。
当我们使用__all__来控制模块中的功能,只允许在*中导入fun1和fun2两个功能:
则在主文件中,我们便不能使用fun3这个功能:
包(package)
在python中有许多模块,当模块文件越来越多时,包可以帮助我们管理这些模块。
物理上看,包就是一个包含许多模块的文件夹。
逻辑上看,包的本质仍然是一个模块,也仍然是一个python文件。
包由许多模块与__init__.py(有这个文件才能说明这是一个包)构成。
第三方包
我们往往需要使用到好用的第三方包,所以我们要知道如何导入第三方包。
有两种方法;
1.在cmd中输入
pip install 包名称
但这样往往是使用国外的网站进行下载,速度很慢,所以我们要控制为国内网络。
pip install -i 网站地址 包名称
2.在idea或者pycharm这类编译器中,也可以下载第三方包。
结论
在大型项目中,我们不可能把所有方法都写在一个python文件中,所以我们需要根据功能等条件来合理使用或构建模块与包,让项目整体更加简洁、有逻辑性。