首页 > 编程语言 >关于python 的if __name__ == "__main__"的模块测试

关于python 的if __name__ == "__main__"的模块测试

时间:2023-03-31 16:14:13浏览次数:38  
标签:__ main name python func print test01

if __name__ == "__main__"

也就是说执行当前文件,不调用模块的时候__name__=__main__

调用模块的时候,测试如下:

1、新建 test01.py 文件测试代码如下

print("这条消息来自test01")

def func():
    print('hello, world!***')
    print("这条消息来自func")

if __name__ == "__main__":
    func()

  运行结果如下:

# 这条消息来自test01
# hello, world!***
# 这条消息来自func

2、新建 testo2.py 文件测试代码如下

import test01
print(__name__)
test01.func() print('\n') print('这条消息来自testo2') print('bye, world!') print(__name__)

运行结果如下:

# 这条消息来自test01    --------------import test01 的时候输出
# __main__       --------------输出当前执行文件的__name__
# hello, world!***  --------------下面这两句调用函数test01.func()时输出
# 这条消息来自func #
# 这条消息来自testo2  -------------继续执行当前文件的代码块
# bye, world!
# __main__

也就是说:

在 test2.py 文件中导入了 test1.py 模块使用的是语句 import test1
那么在执行 test2.py 文件的过程中,当执行到语句 import test1时,程序会跳转去执行 test1.py 文件
比如 print("这条消息来自test01"),可能顺便编译了test01的函数,
因为没有调用所以没有执行,调用以后执行函数内部程序

关于模块的理解大概就这样,至于为什么要在文件开头写这个if __name__ == "__main__",类似于java的主程序入口?大概接触的项目太小,我是还没有发现其妙用之处。

标签:__,main,name,python,func,print,test01
From: https://www.cnblogs.com/Monster1728/p/17276550.html

相关文章

  • 小学试卷怎么打印成a4纸 试卷如何用a4打印出来
    小学阶段是孩子后续学习生涯中非常重要的打基础、培养学习习惯的阶段,所以大多数的家长都非常重要孩子的小学教育及学习情况。而为了观察孩子的学习情况、方便孩子平时复习和练习知识点,很多家长都会额外找一些对应学习阶段的小学试卷,让孩子做练习。  但是也有一些家长表示,......
  • 202031607332-阿卜杜热合曼·麦麦提艾萨 实验一 软件工程准备—对课程的初步认识
    项目内容班级博客链接2023年春软件工程(2020级计算机科学与技术本次作业要求链接实验一软件工程准备我的课程学习目标1.学习博客园软件开发者学习社区使用技巧和经验2.了解Github的基本操作本次作业在哪些方面帮我实现学习目标学习了博客园使用技巧,Github的......
  • 点击某个元素查看有没有指定的父元素
    mounted(){document.addEventListener("click",(e)=>this.fintParent(e));},methods:{fintParent(e){constclickNode=e.srcElement;letparent=clickNode.parentNode;while(parent){if(......
  • python isinstance()函数
    pythonisinstance()函数描述isinstance()函数来判断一个对象是否是一个已知的类型,类似type()isinstance()与type()的区别type()不会认为子类是一种父类类型,不考虑继承关系isinstance()会认为子类是一种父类类型,考虑继承关系如果要判断两个类型是否相同推荐使用isinstanc......
  • SQL - 语法
    一、概念1.语法语法结构:要点:语句不区分大小写;多条语句以“;”分割;处理SQL语句时,所有空格都被忽略2.分类数据操纵语言DML数据定义语言DDL事务控制语言TCL数据控制语言DCL 二、数据操纵语言DML用于数据库操作,对数据库其中的对象和数据运......
  • oracle的各版本的名称
    我最早接触的是oracle的版本8那个时候是8ii是internet后来是9i然后到10,就是版本10gg是grid的意思然后是11g然后12就变成了C,就是12cc是cloud的意思然后后面的版本是18c19c21c现在23c还处于研发阶段现在主推的版本是19c————————————————版权声明:本文为CSDN博主......
  • [渗透&攻防]-AppScan安装
    前言难道我们现在需要进行每个接口的扫描,sql注入测试,针对前段做XSS攻击,针对cookie做csrf攻击吗?不需要!!接下来给请出我们今天的主角APPSCan?注:漏扫已经是实质的攻击行为,请务必确保你的扫描动作是经过授权的,尤其不要尝试在非授权的情况下在互联网上扫描政府类网站,若是导致网站瘫痪或......
  • Ubuntu镜像文件下载
    Ubuntu各种版本镜像文件可从清华大学开源软件镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases  点击你想要的版本 下载桌面版或服务器版吧 ......
  • Arduino 外接 DS3132 读数为2165/165/165问题解决
    即使SCL/SDA不接线,DS3132也会返回,这个值为2165/165/165因此问题的来源为接线不牢靠。接线牢靠的标准:RTC模块(ZS-042)上的PWR灯应该常亮,并且亮度很大(我一开始接线,PWR亮度小,而且闪烁)RTC的SCL接Arduino的A4,SDA接Arduino的A5.The165indicatesthatthedatalinefor......
  • WLC Internal DHCP Server
    ThecontrollerscontainaninternalDHCPserver.ThisserveristypicallyusedinbranchofficesthatdonotalreadyhaveaDHCPserver.Thewirelessnetworkgenerallycontainsamaximumof10accesspointsorfewer,withtheaccesspointsonthesameIP......