制作自定义模块

Python中已经帮我们实现了很多的模块,不过有时候我们需要一些个性化的模块,这里就可以通过自定义模块实现,也就是自己制作一个模块。

案例: 新建一个Python文件,命名为my_module1.py,并定义test函数

python 导入mongo python 导入自定义模块_pycharm


**注意:**每个Python文件都可以作为一个模块,模块的名字就是文件的名字,也就是说自定义模块名必须要符合标识符命名规则。

代码示例:

# 导入自定义模块使用
# import my_module1  # 用import导入自定义模块
from my_module1 import test  # 用from 模块名 import 功能名导入自定义模块

test(1, 2)
# 导入不同模块的同名功能
from my_module1 import test
from my_module2 import test

test(1, 2)
# 如果调用不同模块的同名功能,会调用最后输入的功能名

注意事项:当导入多个模块的时候,且模块内有同名功能,当调用这个同名功能的时候,调用到的是后面导入的模块的功能

测试模块

在实际开发中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,这个开发人员会自行在py文件中添加一些测试信息,例如,在my module1.py文件中添加测试代码test(1,1)

def test(a, b):
	print(a + b)
test(1, 1)

问题:此时,无论是当前文件,还是其他已经导入了该模块的文件,在运行的时候都会自动执行 test 函数的调用
解决方案:

def test(a, b):
	print(a + b)
# 只在当前文件中调用该函数,其他导入的文件内不符合该条件,则不执行test函数调用
if __name__ == '__main__':
    test(1, 2)

__all__变量

如果一个模块文件中有__all__变量,当使用from xxx import *导入时,只能导入这个列表中的元素

python 导入mongo python 导入自定义模块_python 导入mongo_02


总结:

①:如何自定义模块并导入?

在Python代码文件中正常写代码即可,通过import、from关键字和导入Python内置模块一样导入即可使用。

②:__main__变量的功能是?

if __name__ == '__main__'表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法进入

③:注意实现

不同的模块,同名的功能,如果都被导入,那么后导入的会覆盖先导入的

__all__变量可以控制 import *的时候哪些功能可以被导入