以主程序的形式执行

2024-06-04 14:04
文章标签 执行 形式 主程序

本文主要是介绍以主程序的形式执行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

这里先来创建一个模块,名称为christmastree,该模块的内容为第6章中编写的实例05的代码。在该段代码中,首先定义一个全局变量,然后创建一个名称为fun_christmastree()的函数,最后再通过print()函数输出一些内容。代码如下:

pinetree = '我是一棵松树'                      # 定义一个全局变量(松树)

def fun_christmastree():                                  # 定义函数

    '''功能:一个梦

       无返回值

    '''

    pinetree = '挂上彩灯、礼物……我变成一棵圣诞树 @^.^@ \n'    # 定义局部变量

    print(pinetree)                                           # 输出局部变量的值

# *****************************函数体外*********************************** #

print('\n下雪了……\n')

print('=============== 开始做梦…… =============\n')

fun_christmastree()                                          # 调用函数

print('=============== 梦醒了…… ===============\n')

pinetree = '我身上落满雪花,' + pinetree + ' -_- '          # 为全局变量赋值

print(pinetree)                                         # 输出全局变量的值

在与christmastree模块同级的目录下,创建一个名称为main.py的文件,在该文件中,导入christmastree模块,再通过print()语句输出模块中的全局变量pinetree的值,代码如下:

import christmastree                            # 导入christmastree模块

print("全局变量的值为:",christmastree.pinetree)

执行上面的代码,将显示如图9所示的结果。

图9  导入模块输出模块中定义的全局变量的值

从图9所示的运行结果可以看出,导入模块后,不仅输出了全局变量的值,而且模块中原有的测试代码也被执行了。这个结果显然不是我们想要的。那么如何只输出全局变量的值呢?实际上,可以在模块中,将原本直接执行的测试代码放在一个if语句中。因此,可以将模块christmastree的代码修改为以下内容:

pinetree = '我是一棵松树'                      # 定义一个全局变量(松树)

def fun_christmastree():                      # 定义函数

    '''功能:一个梦

       无返回值

    '''

    pinetree = '挂上彩灯、礼物……我变成一棵圣诞树 @^.^@ \n'    # 定义局部变量赋值

    print(pinetree)                          # 输出局部变量的值

# *************************判断是否以主程序的形式运行************************* #

if __name__ == '__main__':

    print('\n下雪了……\n')

    print('=============== 开始做梦…… =============\n')

    fun_christmastree()                      # 调用函数

    print('=============== 梦醒了…… ===============\n')

    pinetree = '我身上落满雪花,' + pinetree + ' -_- '      # 为全局变量赋值

    print(pinetree)                          # 输出全局变量的值

再次执行导入模块的main.py文件,将显示如图10所示的结果。从执行结果中可以看出测试代码并没有执行。

图10  在模块中加入以主程序的形式执行的判断

此时,如果执行christmastree.py文件,将显示如图11所示的结果。

图11  以主程序的形式执行的结果

说明:在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定它们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__变量的值为__main__。

这篇关于以主程序的形式执行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1030285

相关文章

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

一个Java的main方法在JVM中的执行流程示例详解

《一个Java的main方法在JVM中的执行流程示例详解》main方法是Java程序的入口点,程序从这里开始执行,:本文主要介绍一个Java的main方法在JVM中执行流程的相关资料,文中通过代码... 目录第一阶段:加载 (Loading)第二阶段:链接 (Linking)第三阶段:初始化 (Initia

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

Spring Bean初始化及@PostConstruc执行顺序示例详解

《SpringBean初始化及@PostConstruc执行顺序示例详解》本文给大家介绍SpringBean初始化及@PostConstruc执行顺序,本文通过实例代码给大家介绍的非常详细,对大家的... 目录1. Bean初始化执行顺序2. 成员变量初始化顺序2.1 普通Java类(非Spring环境)(