Python3:if __name__ == '__main__' 详解
- 一般在风格比较好的代码中会有一行
if __name__ == '__main__' :代码,这里说明一下这句代码的用处,先上两个代码test1.py和test2.py:
# test1.py
print("test1's name :" ,__name__)
if __name__ == '__main__':
print('test1 runs as main !')
# test2.py
import test1
print("test2's name :" , __name__)
test1
print("test2 runs as main !")
- 两个文件放在同一目录下,这里我们看出
test2.py会调用test1.py,直接运行test1.py,输出如下:
out[1]: test1's name : __main__
test1 runs as main !
- 运行
test2.py,输出如下:
out[2]: test1's name : test1
test2's name : __main__
test2 runs as main !
test1的if代码块没有执行
- 一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用执行。
- 每一个文件都有一个内置的
__name__变量,用来指示当前文件的名字,当这个文件直接被执行时,__name__值为__main__,当被调用执行(即以模块形式)时,__name__值为模块名。 if __name__ == '__main__' :的作用就是控制这两种情况执行代码的过程,此代码块只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的,如上所示
作者:ACphart
链接:https://www.jianshu.com/p/de19cdeb9195
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Python3:if __name__ == '__main__' 详解的更多相关文章
- if __name__ == '__main__' 详解
1.__name__是啥 __name__ 是Python的模块名字. 手册解释:The name of the module. 2.__name__的值 首先,一个变量一次只有一个值. 其次,__n ...
- Python中 if __name__ == '__main__': 详解
一个python文件就可以看作是一个python的模块,这个python模块(.py文件)有两种使用方式:直接运行和作为模块被其他模块调用. __name__:每一个模块都有一个内置属性__name_ ...
- Python中if __name__ == "__main__"详解
比如你编写一个test.py文件,一个python文件就可以看作是一个python的模块,这个python模块(.py文件)有两种使用方式:直接运行使用和作为模块被其他模块调用. 解释下__ ...
- mac上python3.x安装 图文详解
mac安装brew报错及解决办法 https://blog.csdn.net/zdp072/article/details/82563320 更改脚本中的资源链接,替换成中国科学技术大学的镜像 htt ...
- python3 内置函数详解
内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小. >>> abs(-25) 25 >&g ...
- python3内置函数详解
内置函数 注:查看详细猛击这里 abs() 对传入参数取绝对值 bool() 对传入参数取布尔值, None, 0, "",[],{},() 这些参数传入bool后,返回False ...
- linux上安装Python3和django流程详解
1.安装python3 1.1 安装相关依赖库(工具包) --->很重要 yum install gcc patch libffi-devel python-devel zlib-devel ...
- Python3之Requests模块详解
# 导入 Request模块 # 若本机无自带Request模块,可自行下载或者使用pip进行安装 # python版本Python3 import requests import json #### ...
- Python3.5 queue模块详解
queue介绍 queue是python中的标准库,俗称队列,可以直接import 引用,在python2.x中,模块名为Queue 在python中,多个线程之间的数据是共享的,多个线程进行数据交换 ...
随机推荐
- cocos2d-x学习记录5——CCTransition场景过渡
利用CCTransition能够创建出一系列的场景过渡动画,能够使场景切换时更加绚丽丰富. CCTransition派生出很多过渡动画,传入的参数一般包括过渡时间和创建的场景. MyScene.h内容 ...
- SSIS 包配置
在商业智能解决方案中,SSIS工程有两种部署模式:工程部署(project deployment)和包部署(package deployment),默认是工程部署模式,在Package的管理上,工程部 ...
- REST-framework快速构建API--初体验
一.快速上手 1.环境准备 安装restframework,注册app pip install djangorestframework INSTALLED_APPS = [ 'django.contr ...
- 基于.NET Standard的分布式自增ID算法--Snowflake
概述 本篇文章主要讲述分布式ID生成算法中最出名的Snowflake算法.搞.NET开发的,数据库主键最常见的就是int类型的自增主键和GUID类型的uniqueidentifier. 那么为何还要引 ...
- eclipse + maven + com.sun.jersey 创建 restful api
maven 创建 jersey 项目 如果没找到 jersey archetype, 下载 maven 的 archetype xml, 然后导入 archetypes 运行 右击 main.java ...
- C#图片处理(转zhjzwl/archive)
基本原理: 获取每一个像素值,然后处理这些每一个像素值. 原始图片: ISINBAEVA ~~~~~~~~ 一. 底片效果 原理: GetPixel方法获得每一点像素的值, 然后再使用SetPix ...
- 微信小程序在当前页面设置其他页面的数据
如果其他页面用到的数据是 globalData, 那么直接在当前页面修改 globalData 数据即可. 如果其他页面用到的数据是 storage, 那么直接在当前页面修改 storage 数据即可 ...
- RabbitMq基础教程之基本概念
RabbitMq基础教程之基本概念 RabbitMQ是一个消息队列,和Kafka以及阿里的ActiveMQ从属性来讲,干的都是一回事.消息队列的主要目的实现消息的生产者和消费者之间的解耦,支持多应用之 ...
- Nginx安装负载均衡配置 fair check扩展
前言 本文主要是针对Nginx安装.负载均衡配置,以及fair智能选举.check后端节点检查扩展功能如何扩展,进行讲解说明. fair模块: upstream-fair,“公平的”Nginx 负载均 ...
- [paper]MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects
Before 近期在调研关于RGBD在室内移动机器人下的语义导航的研究.目前帝国理工的Andrew Davison在这边有两个团队在研究,分别是Fusion++ 和 这篇 MaskFusion.这篇是 ...