python __name__==“__main__“
创始人
2025-05-28 14:34:19

浅显的理解__name__

我们经常能看到程序里最后会写一段:

if __name__ == __main__:func()

简单的解释一下这个语句的意思的话就是:

当程序单独运行的时候执行func函数。

当程序单独运行的时候,__name__就是"_main_"(当这个程序被其他程序调用的时候,__name__就会变为这个程序的名字)

目录

  • 浅显的理解__name__
      • 为什么要写if __name\__== "__main\__"
    • 实例展现
      • 1.不添加if \__name__ ="\__main__"时
          • 被调用程序:
          • 调用上一个程序中func函数的程序
          • 输出结果
      • 2.添加if \__name__ ="\__main__"时
          • 被调用程序:
          • 调用func函数的程序不变
          • 输出结果
      • 3.当程序被别的程序调用的时候__name\__属性是什么样的
          • 被调用程序
          • 调用func函数的程序内容不变
          • 输出结果
      • 4.当程序单独运行时__name\__又是什么样的?
          • 输出结果

为什么要写if __name_== "__main_"

写这句语句的最终目的是:希望这个程序既能单独运行也能被其他程序调用运行

为什么这么说呢?从逻辑上,如果一个程序要单独运行,就一定需要一个输出。也就是需要在程序中使用函数。但是如果别的程序调用这个程序的话,这个程序就会输出一遍在这个程序内部使用的函数的结果,然后输出调用这个程序的程序希望的输出。这样的结果是在调用的时候不想见到的。
因此,利用__name__属性在程序单独运行和被调用时的属性值不同,进行一次判断,如果是单独运行就展现程序本身使用函数的结果;如果不是就不输出这一部分的结果。

实例展现

1.不添加if _name_ ="_main_"时

被调用程序:
def func(words):print(words)
func(this is origin py)
调用上一个程序中func函数的程序
from  __name__main_test_origin import funcfunc("this is the script that import the origin one")
输出结果

输出时就是先输出被调用程序的运行结果,然后才会输出调用了该函数的程序所需要的结果。
在这里插入图片描述

2.添加if _name_ ="_main_"时

被调用程序:
def func (words) :print (words)if __name__ == "__main__":func("this is origin py")
调用func函数的程序不变
输出结果

这样就只输出调用func函数的程序需要的结果了。
在这里插入图片描述

3.当程序被别的程序调用的时候__name__属性是什么样的

被调用程序
def func (words) :print (words)func(__name__)
调用func函数的程序内容不变
输出结果

结果第一行先输出被调用程序输出结果,也就是当程序被调用时,__name__的取值,也就是这个程序的名字。
在这里插入图片描述

4.当程序单独运行时__name__又是什么样的?

输出结果

可以看到,单独运行程序的时候它的__name__属性是_main_
在这里插入图片描述

相关内容

热门资讯

玩家必看“盛世棋牌透视辅助工具... 您好:盛世棋牌这款游戏可以开挂,确实是有挂的,需要软件加微信【6355786】,很多玩家在盛世棋牌这...
分享实测“白金岛跑得快究竟有透... 您好:白金岛跑得快这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4194432】很多玩家在白金...
重大通报“光明大厅确实是有挂”... 亲.光明大厅这款游戏是可以开挂的,确实是有挂的,通过添加客服【3671900】很多玩家在这款游戏中怀...
今日重大通报“莆仙吹牛究竟有没... 您好:莆仙吹牛这款游戏可以开挂,确实是有挂的,需要软件加微信【5951795】,很多玩家在莆仙吹牛这...
重大通报“爱玩麻将究竟有没有挂... 您好:爱玩麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【3671900】很多玩家在这款游戏中打...