前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >python模块导入及导出

python模块导入及导出

作者头像
不止于python
发布2023-09-05 14:21:35
发布2023-09-05 14:21:35
1.5K00
代码可运行
举报
文章被收录于专栏:不止于python不止于python
运行总次数:0
代码可运行
模块的作用

在Python中,模块是一种组织代码的方式,它允许你将相关的函数、类和变量封装在一个文件中,以便于代码的管理和复用。正确地导出和导入模块是编写清晰、可维护代码的重要组成部分。这篇将介绍如何正确地导出和导入Python模块,并写简单的示例来帮助理解。

模块创建

创建一个模块, 就是创建一个python文件, 文件中定义的变量, 函数以及类都是模块的一部分, 可以供其它模块导出重复使用

my_module.py

代码语言:javascript
代码运行次数:0
复制
# -*- 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
代码运行次数:0
复制
# -*- 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
代码运行次数:0
复制
# 来看看__name__是什么
print("__name__=", __name__)


if __name__ == "__main__":
    print(message)

直接运行 my_module.py 文件输出:

代码语言:javascript
代码运行次数:0
复制
__name__= __main__
Welcome to my module
[Finished in 0.1s]

运行 main.py 文件输出

代码语言:javascript
代码运行次数:0
复制
__name__= my_module
[Finished in 0.0s]

所以调试可以使用__name__来进行, 在实际开发中, 随着项目的不断完善和新增功能, 代码会越来越多, 代码量上来了, 就要想办法将项目进行拆分, 这样可以避免重复写一些冗余的代码, 也便于维护项目, 将工作的重心放在功能实现上. 好了, 今天就到这里吧~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不止于python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档