在Python中,模块是一种组织代码的方式,它允许你将相关的函数、类和变量封装在一个文件中,以便于代码的管理和复用。正确地导出和导入模块是编写清晰、可维护代码的重要组成部分。这篇将介绍如何正确地导出和导入Python模块,并写简单的示例来帮助理解。
模块创建
创建一个模块, 就是创建一个python文件, 文件中定义的变量, 函数以及类都是模块的一部分, 可以供其它模块导出重复使用
my_module.py
代码语言:javascript复制# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date: 2023-08-15 22:06:00
# @Last Modified by: Mehaei
# @Last Modified time: 2023-08-15 22:31:11
# my_module.py
def Hello(name):
"""
:param name: name
"""
return f"Hello, {name}!"
message = "Welcome to my module"
模块导出使用
导出格式
# 导入模块 import 模块 # 导入模块起一个别名, 文件内的代码可以使用别名使用功能代码 import 模块 as 别名 # 导入模块中的单个功能函数 from 模块 import 函数 # 导入模块中的所有函数(注意: 不推荐, 原因举例说明) from 模块 import *
模块使用
main.py
代码语言:javascript复制# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date: 2023-08-15 22:06:40
# @Last Modified by: Mehaei
# @Last Modified time: 2023-08-15 22:15:20
# main.py
import my_module
import my_module as mm
# 以下两种方式导入都能正常使用Hello, message功能
# 但是如果是import *, 到后续代码调试起来, 不够简洁明了,
# 更会有覆盖原功能的代码的情况出现, 所以不推荐
# from my_module import *
from my_module import Hello, message
print(Hello("Alice")) # 输出:Hello, Alice!
print(message) # 输出:Welcome to my module
print(mm.Hello("MMAlice")) # 输出:Hello, MMAlice!
print(mm.message) # 输出:Welcome to my module
print(my_module.Hello("my_moduleAlice")) # 输出:Hello, my_moduleAlice!
print(my_module.message) # 输出:Welcome to my module
模块测试代码
实际开发中很多时候, 需要调试一下写的模块功能, 但是如果直接写在代码流程中进行代码调用或调试, 那么当别的代码导入该模块时, 这部分代码块也会执行, 所以在文件底部就可以使用 __name__ 来实现:
格式: if __name__ == '__main__': 测试代码
在 my_module.py 文件中加入以下代码
代码语言:javascript复制# 来看看__name__是什么
print("__name__=", __name__)
if __name__ == "__main__":
print(message)
直接运行 my_module.py 文件输出:
代码语言:javascript复制__name__= __main__
Welcome to my module
[Finished in 0.1s]
运行 main.py 文件输出
代码语言:javascript复制__name__= my_module
[Finished in 0.0s]
所以调试可以使用__name__来进行, 在实际开发中, 随着项目的不断完善和新增功能, 代码会越来越多, 代码量上来了, 就要想办法将项目进行拆分, 这样可以避免重复写一些冗余的代码, 也便于维护项目, 将工作的重心放在功能实现上. 好了, 今天就到这里吧~~