首页 > 编程语言 >[Python]学习笔记之- __name__ == '__main__'

[Python]学习笔记之- __name__ == '__main__'

时间:2022-10-23 18:34:12浏览次数:29  
标签:__ name Python 模块 fun main

 if __name__ == '__main__':

大多数规范的Python源码中都可以看到这个语句,初学者可能不清楚这句话的用处。这句代码的字面意思就是在做判断__name__是否为'__main__'。这里涉及知识点:

  • __name__ 是一个特殊的Python内置变量,它的值取决于脚本如何被使用。一个Python源代码文件,一般称之为一个模块。一个模块可以是在Python Shell直接被运行,或者作为库导入到另一个Python源代码文件中。若是前者,即模块直接在shell被执行,此时模块的内置变量__name__就为'__main__',若是后者则__name__则是Python源文件的名字。例如,Lib.py代码如下
    1 def fun():
    2     print('call fun form lib')
    3     print('__name__ ='+__name__)
    4 def test():
    5     fun()
    6    
    7 if __name__ == '__main__':
    8     test()

    在PythonShell 使用指令Python Lib.py 运行该模块,运行结果如下:

    call fun form lib
    __name__ =__main__

    test.py文件代码如下:

    import Lib
    
    Lib.fun()

    运行test.py,结果:

    call fun form lib
    __name__ =Lib

    因此一般 if __name__ == '__main__' : 都是用于模块开发时的模块功能测试,只有直接运行该模块时才会执行 if __name__ == '__main__' :判断条件之后的代码,而其他模块,导入该模块则不会执行。这样实现了既可以再开发模块时方便快捷进行模块代码功能测试,又保证测试代码不会在模块被使用时被调用执行。

标签:__,name,Python,模块,fun,main
From: https://www.cnblogs.com/jdi-2022/p/16819042.html

相关文章

  • Git篇—1.git基本使用
    createanewrepositoryonthecommandlineecho"#makePlugin-demo">>README.mdgitinitgitaddREADME.mdgitcommit-m"firstcommit"gitbranch-Mmastergitr......
  • CSS实现渐变色边框
    三种方式:1.用border-image来实现:.box{width:200px;height:200px;border:10pxsolid#ddd;border-image:......
  • md使用语法
    标题#一级标题(快捷键Ctrl+1)##二阶标题(快捷键Ctrl+2)###三阶标题(快捷键Ctrl+3)####四阶标题(快捷键Ctrl+4)#####五阶标题(快捷键Ctrl+5)######六阶标题(快捷键Ctrl+6)......
  • 前端开发——CSS样式
       1.CSS样式的三种引入方式 1.1内嵌式   1.2外联式     1.3行内式  三种引入方式用处:  2.基础选择器 ......
  • Linux概述和基础
    Linux​Linux的概述:​学习Linux之前先了解Unix​Unix是一个强大的多用户、多任务操作系统。于1969年在AT&T的贝尔实验室开发。UNIX的商标权由国际开放标准组织(TheOpenGrou......
  • 试除法
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){ inti=0;  for(i=100;i<=200;i++) { ints=0; for(s=2;s<i;s++) {......
  • 离职交接,心态要好
    话说今年经历了几次项目交接?主动和被动的都算!01实在是没想到,都到年底快收尾的时候,还要突然接手离职人员的项目;不断拉扯和管理内心情绪,避免原地裂开;年度中再次经历突发的交接......
  • selenium4-获取页面元素相关信息
    本小节我们简单说下如何使用selenium4-获取页面元素相关信息,以及获取页面元素的相关信息后可以做什么。获取页面元素的主要目的:(1)执行完步骤后进行断言;(2)获取前一步骤的响应......
  • PaddleOCR-EAST
    目录AbstractTrainPreProcessArchitectureBackboneNeckHeadLossDiceLossSmoothL1LossInferPostProcess写在前面:基于PaddleOCR代码库对其中所涉及到的算法进行代码简读,......
  • 1.Vue系列——Vuex
    Note1-Vuex目录Note1-Vuex1.vuex2.关于状态管理3.安装Vuex4.vuex中的一些核心概念4.1vuex中的状态state4.2vuex中的Getter方法4.3vuex中的Mutation4.4vuex中的Actio......