Python小技巧:if __name__ == “__main__“ 的作用

news/2024/11/9 0:32:30/

在这里插入图片描述

前言

这里是Python小技巧的系列文章。这是第一篇,if __name__ == "__main__" 的作用。

在编写Python程序时候,总是习惯性的在文件的末尾添加这么一段代码。

if __name__ == "__main__":...

至于它的作用是什么,先不管,能跑就行!

相信挺多小伙伴都是知其然,而不知其所以然的,下面来扒一下。


结论先说在前头:

  • 当一个 demo.py 文件作为独立的程序运行时候,那么 __name__ 变量的值 为__main__
  • 否则(如引用),__name__ 变量的值就会设置为 demo.py 文件的名称,即demo

感兴趣的小伙伴可以继续往下看~


知识点

知识点释义
dir()dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

剖析

if __name__ == “__main__“:,是个条件式语句。判断 __name__ 这个变量是否等于 __main__

执行dir(),获取当前模块的变量名

print(dir())

结果如下:

  • 这里没有定义任何变量,从而知道__name__是Python内置的一个属性。
    在这里插入图片描述

执行__name__,看看该变量的值

print(__name__)

结果如下:

  • 变量__name__ 的值为 __main__
    在这里插入图片描述

打印 __name__的文件为 demo.py,现在在demo2.py中导入 demo.py

import demo

结果如下:

  • 这里可以看到, __name__在被引用时候,它等于模块的名称。
    在这里插入图片描述

后话

本次分享到此结束!


http://www.ppmy.cn/news/18440.html

相关文章

剑指offer—day1.用两个栈实现队列、包含min函数的栈

1.用两个栈实现队列 本题来源:力扣 剑指 Offer 09. 用两个栈实现队列 - 力扣(LeetCode)https://leetcode.cn/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两…

【蓝桥杯】历届真题 天干地支(决赛)Java

【资源限制】 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 【问题描述】 古代中国使用天干地支来记录当前的年份。 天干一共有十个,分别为:甲(jia)、乙(yi)、丙(bing)、丁 (ding…

java学习资料和视频

文章目录1.分布式商城项目(SpringCloud Vue ElementUI)2.大厂算法学习视频(leetCode前100题目本人讲解3,加本人学习购买学习过的vip视频)3.java面经(本人面试多家企业的总结)4.java的面试实战指导5.可以长…

数据结构进阶 unordered_set unordered_map的使用

作者:小萌新 专栏:数据结构进阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍高阶数据结构 unorder_set unorder_map的使用 unorder_set unorder_mapunordered系列关联式容器unordered_set介绍unordere…

89. 注意力机制以及代码实现Nadaraya-Waston 核回归

1. 心理学 动物需要在复杂环境下有效关注值得注意的点心理学框架:人类根据随意线索和不随意线索选择注意点 随意:随着自己的意识,有点强调主观能动性的意味。 2. 注意力机制 2. 非参注意力池化层 3. Nadaraya-Waston 核回归 4. 参数化的注意…

OpenCV级联分类器

OpenCV级联分类器 概览 OpenCV: 一个计算机视觉库, 提供了一种称级联分类器的方法检测对象级联分类器:一种基于AdaBoost算法的多级分类器, 用于在图像中检测目标对象. 它通过不断学习组合多个特征来识别目标对象. 每一级中, 级联分类器先检测出可能是目标对象的部分, 然后再这…

联合证券|港股再融资“春江水暖” 资本争购热门赛道企业

进入2023年,港股再融资商场有所回暖。到1月18日,已有27家港股上市公司发布拟配售股份(简称“配股”)再融资,募资总额164.01亿港元,较上一年同期增加148.16%。其间,微盟集团的配股再融资吸引了众…

python+selenium爬虫自动化批量下载文件

一、项目需求 在一个业务网站有可以一个个打开有相关内容的文本,需要逐个保存为TXT,数据量是以千为单位,人工操作会麻木到崩溃。 二、解决方案 目前的基础办法就是使用pythonselenium自动化来代替人工去操作,虽然效率比其他爬虫…