Python编程中的if __name__ == 'main' 的作用和原理是什么

技术Python编程中的if __name__ == main 的作用和原理是什么这篇文章主要介绍“Python编程中的if __name__ == main 的作用和原理是什么”,在日常操作中,相信很多人在Python

本文主要介绍“Python编程中if _ _ name _ _=‘main’的功能和原理是什么”。在日常操作中,相信很多人对Python编程中if _ _ name _=’ main ‘的功能和原理有所怀疑。边肖查阅了各种资料,整理出简单易用的操作方法,希望回答“Python编程中的If _ in”。接下来,请和边肖一起学习!

__name__是当前模块名,模块直接运行时,模块名为__main__。这句话的意思是,模块直接运行时,会运行下面的代码块,模块导入时,不会运行代码块。

相信初学者在学习Python的过程中难免会遇到if __name__==’main ‘语句。虽然他们总是知道它的功能,但它可能总是模糊的。今天我就举个例子来说明我的理解。

例如,我们在下面的test.py中编写了以下代码:

print(‘ Love Python ‘)defmain(): print(‘ Love Python ‘)if _ _ name _ _==’ _ _ main _ _ ‘ : main()print(‘跟着菜鸟分析,练Python,多练多爱’)运行代码,输出结果为:

Python编程中的if  __name__ == 'main' 的作用和原理是什么

然后,在同一个文件夹中创建一个名为import_test.py的新脚本,并只输入代码:

Importtest运行代码,输出为:

Python编程中的if  __name__ == 'main' 的作用和原理是什么

与之前的test.py代码运行结果相比,只执行了输出Python之前的语句,即if __name__==’__main__’:后续的语句没有执行。

这是为什么?别担心,菜鸟分析会继续给你举例,直到你绝对满意,最后有一种豁然开朗的感觉。

现在,我们在test.py脚本的if _ _ name _=’ _ _ main _ _’ 3360之前添加print __name__即打印出__name__,最终运行结果如下:

Python编程中的if  __name__ == 'main' 的作用和原理是什么

可以看出变量__name__的值是“__main__”。

再次执行import_test.py,模块内容和执行结果如下:

Python编程中的if  __name__ == 'main' 的作用和原理是什么

此时import_test.py中__name__的变量值为test,不满足__name__==’__main__ ‘的条件,后续代码无法执行。

哈哈,你马上明白了吗?我觉得挺好的。给菜鸟分析一个赞!

再想想,它的运行原理是:

由于每个Python模块(Python文件)都包含内置变量__name__,因此在运行模块时,__name__等于文件名(包括后缀)。py)。如果导入到其他模块中,__name__等于模块名(不包括后缀。py)。并且“_main__”等于当前执行文件的名称(包括后缀。py)。因此,直接执行模块时,__name__==’__main__ ‘为真;当模块导入其他模块时,__name__==’__main__ ‘的结果为false,即不调用相应的方法。

简而言之,__name__是当前模块名,当模块直接运行时,模块名为__main__。模块直接运行时,会运行代码,模块导入时,不会运行代码。

至此,“Python编程中if __name__==’main ‘的作用和原理是什么”的研究结束,希望能解决大家的疑惑。理论和实践的结合可以更好的帮助大家学习,所以赶紧试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/48998.html

(0)

相关推荐

  • Hadoop HDFS分布式文件系统怎么理解

    技术Hadoop HDFS分布式文件系统怎么理解本篇内容介绍了“Hadoop HDFS分布式文件系统怎么理解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧

    攻略 2021年12月9日
  • java中基于线层池Spring-quartz如何实现动态增删除改和暂停恢复定时任务

    技术java中基于线层池Spring-quartz如何实现动态增删除改和暂停恢复定时任务这篇文章主要讲解了“java中基于线层池Spring-quartz如何实现动态增删除改和暂停恢复定时任务”,文中的讲解内容简单清晰,

    攻略 2021年11月15日
  • XXJ什么意思,数字8322什么意思呀

    技术XXJ什么意思,数字8322什么意思呀很简单XXJ什么意思,只要把这些数字按字母表的顺序转化成英文字母,也就是数字1——26分别代表字母a——z,那么,24.21.5.25.15.21.19.21.15.3.8.5.

    生活 2021年10月26日
  • 2021-2022-1 20211408 《信息安全专业导论》第八周学习总结

    技术2021-2022-1 20211408 《信息安全专业导论》第八周学习总结 2021-2022-1 20211408 《信息安全专业导论》第八周学习总结2021-2022-1 2021140

    礼包 2021年11月9日
  • FP Tree算法原理是什么

    技术FP Tree算法原理是什么FP Tree算法原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Apriori算法是挖掘频繁项集的经典算法,需要多

    攻略 2021年12月3日
  • Python数据分析的示例分析

    技术Python数据分析的示例分析这篇文章主要介绍了Python数据分析的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、什么是数据分析数据分析

    攻略 2021年10月28日