首页 > 编程语言 >python if __name == "__main__"的详解

python if __name == "__main__"的详解

时间:2023-03-20 17:00:11浏览次数:39  
标签:__ name python py cal main

前言

对于python来说,我们经常会见到一行代码:

if __name__ == "__main__":
    balabala

那这句话是啥意思呢?

 

正文

首先要明白__name__是python当中的一个属性,代表现在主模块的引用。

如果调用的是本模块(python文件相当于模块),那么默认的name就是_main__了。如果不是的话,name就会设置为引用模块的名称。

例如我有两个py文件,cal.py和hello.py,其中hello.py会引用cal.py。

#cal.py
def return_max(num1, num2):
    if num1 >= num2:
        return num1
    else:
        return num2
    

num = return_max(3,5)
print(num)
print(__name__) #显示为__main__
#hello.py
import cal

print(cal.__name__) #显示为cal

按照上面的说法,这时如果我们运行hello.py, 跑出来的就不是hello.py的内容而是cal.py内容了。

而如果我加了这行判断,就不会出现这个问题。

if __name__ == "__main__":

 

后记

这个概念对于python是非常重要的,主要是为了防止引用混乱的问题。

标签:__,name,python,py,cal,main
From: https://www.cnblogs.com/young233/p/17236926.html

相关文章

  • [ABC294Ex] K-Coloring
    考虑dfs后搞出dfs树,考虑若干返祖边有限制,那么,我们一个朴素的想法是枚举这些有被返祖边搞到的点的颜色,但这样最坏是\(O(K^n)\)的。但显然一条返祖边在钦定完一个端点......
  • canvas 中使用跨域的图片
    一张跨域的图片直接在canvas中使用控制台是会给出警告的:Error:SecurityError:Failedtoexecute'toDataURL'on'HTMLCanvasElement':Taintedcanvasesmaynotbeex......
  • css实现文本水平&垂直对齐的三种方式
    第一种:使用padding和text-align:center例如:.center{padding:100px0;border:1pxsolidgreen;text-align:center;} 第二种:使用line-heig......
  • Redxu(RTK) 基础 性能与数据范式化 6.3 提升渲染性能
    调研渲染行为(使用profiler观察组件的渲染情况)这里使用到了reduxprofiler这个调试工具(当然得提前安装好Reactdevtools这个chrome),以我们已经编写好的页面举例子:Pr......
  • Microsoft Project教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介IT宝库MS项目入门教程-从基本概念开始,简单易学地学习MS项目,包括设置,简介,入门,创建新计划,设置资源,为任务分配资源,计划持续时间成本和时间,跟踪进度,高级计划,项目状......
  • Windows 设置自动登录
     需要设置自动登录的场景如下:个人PC,开机时不想输入密码,但是又不能不设置密码自助机需要设置密码,又需要无人托管每天自动开机(BIOS可设置定时开机和通电自动开机)服务器......
  • 【题解】CF1034E
    题目描述给定\(n\)和长度为\(2^n\)的数列\(a_{0},a_{1}...a_{2^n-1}\)和\(b_{0},b_1...b_{2^n-1}\),保证每个元素的值属于\([0,3]\)生成序列\(c\),对于\(......
  • package.json 文档
    Description这份文档是您所需要了解的关于软件包中所需要的内容的全部内容。它必须是JSON,而不仅仅是JavaScript字面量。本文档中描述的许多行为都受到config中描述的配置......
  • IDEA如何创建.properties文件
    打开idea在资源文件上,创建该文件 ......
  • 重链剖分学习笔记+做题记录
    一、理论知识首先放一张图(明显是OI-Wiki的):\(u\)的子节点\(p_1,p_2,\dots,p_k\)中子树最大的节点叫做重儿子,如有多个,任取其一,记作\(son_u\)。\(u\)除掉\(so......