首页 > 编程语言 >python中if __name__ == '__main__'问题

python中if __name__ == '__main__'问题

时间:2022-10-08 09:36:55浏览次数:50  
标签:__ name python py t1 print main

在Python当中遇到一段代码:if __name__ == '__main__' ,那么这段代码到底是什么意思呢?

先准备两个py文件,t1.py和t2.py

具体可以看以下示例:

t1.py:

# t1.py
def run():
    print("first:'%s' " % __name__)
执行结果:first:'__main__' 

t2.py:

import t1
print("second: '%s'" %__name__)
执行结果:

  first:'t1'
  second: '__main__'

在t2.py文件中导入t1.py,那么进行打印时,则也会先执行t1.py中代码,然后才执行t2.py中的代码。

那么,下面的这个结果:

t1.py:

def run():
    print("first:'%s' " % __name__)
def func():
    print("hello world")


if __name__ == '__main__':
    run()
执行结果: first:'__main__' 

t2.py: 

import t1
print("second: '%s'" %__name__)
执行结果: second: '__main__'

上述t2.py中没有执行t1.py中代码,这是因为t1.py中存在了“if __name__ == '__main__': ”,那么我们再看下面的示例:

t1.py:

def run():
    print("first:'%s' " % __name__)
def func():
    print("hello world")


if __name__ == '__main__':
    run()
else:
    func()
执行结果: first:'__main__' 

t1.py中只执行了run()函数。这是因为存在if __name__ == '__main__':

那么,将这个t1.py导入t2.py中会产生怎么样的效果呢?

import t1
print("second: '%s'" %__name__)
执行结果: hello world
      second: '__main__'

可以看出,执行t2.py,t1.py中只要在if __name__ == '__main__':判断语句中代码不执行。

那么,这个if __name__ == '__main__':的作用可以知晓了把!

 

标签:__,name,python,py,t1,print,main
From: https://www.cnblogs.com/shaoyishi/p/16767953.html

相关文章

  • NOPI设置单元格格式
     将单元格格式设置为文本HSSFWorkbookwk=newHSSFWorkbook();HSSFSheetsheet=(HSSFSheet)wk.CreateSheet("sheet1");HSSFRowhe......
  • 快速排序模板及快速选择例题
    快速排序模板及快速选择例题快速排序思路首先选择出分界值,x=q[l]或q[r]或q[(l+r)/2];将整个数组分为左右两段,使得左边的所有数都<=x,右边的所有数都>=x2.......
  • 关于request.getServletPath(),request.getContextPath()的总结
    最近对于request中的几种“路径”有点混淆,查找网上资源都没有很好的总结,希望此文章能够帮助我理解一下这几种“路径”。+++++++++++++++++++++++++++++++++++++++++++++++......
  • 32位系统支持多大内存?
    32位系统支持多大内存首先说明几个概念:32操作系统的地址总线为32,最大可寻址个地址;内存中一个存储单元为一个字节,即1byte或者8bit;1Gb=Mb=Kb=byte=bit;现在再整......
  • 测试基础
    各测试分类详解 各测试分类详解单元测试(UT,unittesting),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具......
  • .NETCore .NET6中一些常用组件的配置及使用记录,持续更新中。。。
    .NETCore.NET6中一些常用组件的配置及使用记录,持续更新中。。。  NET6App介绍.NET6的CoreApp框架,用来学习.NET6的一些变动和新特性,使用EFCore,等一系列组件的运......
  • 我的需要
    拿什么来抵消时间流逝给人造成的无力感,有人说用做抵消想的空洞,那么日复一日的工作,不正是在用做对抗返贫的风险吗!可是毕业7年如同白驹过隙,记住的只是破碎的生活片段,只是在某......
  • Java如何调用HttpURLConnection类模拟浏览器访问呢?
    下文笔者讲述使用Java代码模拟浏览器请求的方法分享,如下所示:实现思路:使用HttpURLConnection类即可模拟浏览器访问例:packagecom.java265.other;importjava.......
  • MQTT协议 QoS级别
        ......
  • 读后感
    在有人提出“基础知识很扎实,但是面试就是做不出来,怎么办”的问题时,邹欣老师回答道:“这个问题看似迷惑,其实提问的人搞混了两件事,“数据结构与算法基础知识很扎实": 知......