前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python】模块导入 ⑤ ( 主程序判断语句 | 模块中执行函数问题 | 制作自定义模块并执行函数 | 导入自定义模块会执行模块中的代码 )

【Python】模块导入 ⑤ ( 主程序判断语句 | 模块中执行函数问题 | 制作自定义模块并执行函数 | 导入自定义模块会执行模块中的代码 )

作者头像
韩曙亮
发布2023-10-11 19:10:28
1960
发布2023-10-11 19:10:28
举报
文章被收录于专栏:韩曙亮的移动开发专栏

一、模块中执行函数问题

1、制作自定义模块并执行函数

如果在自定义模块中 , 定义了函数 , 并且调用了该函数 ;

如下代码所示 :

代码语言:javascript
复制
def add(a, b):
    print("调用 my_module 模块中的功能")
    return a + b


print(add(3, 4))

执行 my_module 模块 , 结果如下 :

代码语言:javascript
复制
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/my_module.py
调用 my_module 模块中的功能
7

Process finished with exit code 0

2、导入自定义模块会执行模块中的代码

在主代码中 , 导入自定义模块 ;

代码语言:javascript
复制
"""
自定义模块 代码示例
"""

# 导入自定义模块
import my_module

执行上述代码 , 结果如下 , 没有调用 my_module 模块中的函数 , 但是该函数还是触发了 ;

代码语言:javascript
复制
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
调用 my_module 模块中的功能
7

Process finished with exit code 0

这是因为 import 导入模块 , 将模块中的所有代码一次性拷贝到了该代码位置 , 执行该代码 , 即执行了 my_module 中的所有代码 ;

3、主程序判断语句

Python 中 提供了 主程序判断语句 :

代码语言:javascript
复制
if __name__ == '__main__':

其作用是 判断当前模块 是否作为独立的主程序运行 ;

一个模块可以被其他模块导入 , 也可以作为独立的主程序运行 ;

当一个模块被导入时 , Python 会将模块的代码执行一遍 , 但是主程序的入口会被设置为导入该模块的模块的代码 ;

而当一个模块作为独立的主程序运行时 , Python 会直接执行该模块的代码 ;

为了区分这两种情况 , Python 引入了一个 特殊变量 __name__ , 该变量会根据当前模块的运行方式不同而有所不同 ;

  • 当一个模块被导入时 , __name__ 的值为该模块的名称 , 此时 if __name__ == '__main__' 不成立 ;
  • 当一个模块作为独立的主程序运行时 , __name__ 的值为 __main__ , 此时 if __name__ == '__main__' 成立 ;

4、代码示例 - 主程序判断语句

将 模块 中的 可执行代码 , 放在 if __name__ == '__main__': 代码块中 ,

只有当 右键 点击 " Run " 选项时 , __name__ 的值才为 __main__ , 该代码块才会被触发执行 ;

此时再次执行

代码语言:javascript
复制
"""
自定义模块 代码示例
"""

# 导入自定义模块
import my_module

主代码 , 执行结果为 , 没有触发模块中的可执行代码执行 ;

代码语言:javascript
复制
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py

Process finished with exit code 0
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、模块中执行函数问题
    • 1、制作自定义模块并执行函数
      • 2、导入自定义模块会执行模块中的代码
        • 3、主程序判断语句
          • 4、代码示例 - 主程序判断语句
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档