首页 > 其他分享 >if __name__ == '__main__' 是什么意思

if __name__ == '__main__' 是什么意思

时间:2024-05-07 17:44:07浏览次数:21  
标签:__ main const name py PI

__name__是python中的内置变量,表示当前模块/方法/函数的名称

当.py文件被直接运行时,if name == 'main'之下的代码块将被运行;当.py文件以模块形式被导入时,if name == 'main'之下的代码块不被运行。

如:
定义const.py

PI = 3.14

def main():
    print("PI:", PI)

if __name__ == '__main__':
    main()

直接运行该py文件:

PI: 3.14

创建main.py文件,将const.py以模块形式导入到main.py中,const.py代码不变

from const import PI

def calc_round_area(radius):
    return PI * (radius ** 2)

def main():
    print("round area: ", calc_round_area(2))

main()

运行结果:

round area:  12.56

此时const.py的if name == 'main'下的函数不被运行。
此时可以在const.py中添加代码:

print(__name__)

打印会发现,__name__此时为"const"

同样,在main.py打印__name__,会发现main.py中的__name__为__main__

全部代码:
const.py:

PI = 3.14

def main():
    print("PI:", PI)

print(__name__)
if __name__ == '__main__':
    main()
from const import PI

def calc_round_area(radius):
    return PI * (radius ** 2)

def main():
    print("round area: ", calc_round_area(2))

print(__name__)
main()

运行结果:

const
__main__
round area:  12.56

标签:__,main,const,name,py,PI
From: https://www.cnblogs.com/Gimm/p/18177841

相关文章

  • 2024.4.23
    继续之前任务@keyframescuIcon-spin{ 0%{ -webkit-transform:rotate(0); transform:rotate(0); } 100%{ -webkit-transform:rotate(359deg); transform:rotate(359deg); }}.cuIconfont-spin{ -webkit-animation:cuIcon-spin2sinfinitelinear; animation:cuIc......
  • Hutool 只复制不为空的属性
    在使用Hutool的工具类进行复制时,有时候需要只复制不为空的属性。比如在修改时,先把数据库中的数据查出来:SysAreasysArea=getById(dto.getId());此时再以传入值复制到数据库表对象中,但如果传入值中有属性为null,会将数据库表对象的属性也设为null,修改时这些属性就会被清空,......
  • 2024.4.25
    radio.radio[checked]::after,radio.radio.uni-radio-input-checked::after{ content:""; background-color:transparent; display:block; position:absolute; width:8px; height:8px; z-index:999; top:0upx; left:0upx; right:0; bottom:0; margin:......
  • 构建之法读后感6
    《构建之法》这本书深入探讨了软件架构设计的重要性和方法。通过阅读这本书,我对软件架构设计有了更深入的理解,并从中获得了以下几点启示:首先,作者强调了分层架构的重要性。分层架构能够将系统划分为不同的层次,如数据层、业务逻辑层和表示层,使系统更加模块化和易于维护。同时,分层架......
  • 个人分工06——团队冲刺
    个人分工06——团队冲刺今日任务:前端优化开发代码import{createRouter,createWebHistory}from'vue-router'//导入组件importLoginVuefrom'@/views/Login.vue'importLayoutVuefrom'@/views/Layout.vue'importArticleCategoryVuefrom'@/views......
  • 2024.4.24
    /*==================初始化====================*/body{ background-color:#f1f1f1; font-size:28upx; color:#333333; font-family:HelveticaNeue,Helvetica,sans-serif;}view,scroll-view,swiper,button,input,textarea,label,navigator,image{ box-sizi......
  • bat
    1、BAT脚本编写echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。echo表示显示此命令后的字符echooff表示在此语句后所有运行的命令都不显示命令行本身@与echooff相象,但它是加在每个命令行的最前面,表示运行时不显示这一行......
  • Pacemaker 入门之--- 单节点高可用配置和管理
    案例说明:要熟悉您用来创建Pacemaker集群的工具和进程,您可以执行以下流程。这些内容适用于想了解集群软件以及如何管理它,而不需要配置集群的用户。注意这些步骤并不会创建受支持的红帽集群。受支持的红帽集群至少需要两个节点并配置隔离设备。有关红帽对RHEL高可用性集群的......
  • 如何判断HTTP请求结束
    如何判断HTTP请求结束如果按下面这样写的话,在浏览器中访问12000端口,可能会显示出"HellowWorld!",但浏览器实际一直处于连接状态,在edge中状态栏会显示叉号,可以手动关闭连接。fromsocketimportsocket,AF_INET,SOCK_STREAM,SOL_SOCKET,SO_REUSEADDRHTTPResponse='HTTP/1.......
  • svg 进度条
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>Document</title&g......