python中if __name__ == '__main__': 的解析

2023-11-17

python中if __name__ == '__main__': 的解析

当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用.

        模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。

///

在cmd 中直接运行.py文件,则__name__的值是'__main__';

而在import 一个.py文件后,__name__的值就不是'__main__'了;

从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件

如:

#Test.py

class Test:

    def __init(self):pass

    def f(self):print 'Hello, World!'

if __name__ == '__main__':

    Test().f()

#End

 

你在cmd中输入:

C:>python Test.py

Hello, World!

说明:"__name__ == '__main__'"是成立的

 

你再在cmd中输入:

C:>python

>>>import Test

>>>Test.__name__                #Test模块的__name__

'Test'

>>>__name__                       #当前程序的__name__

'__main__'

无论怎样,Test.py中的"__name__ == '__main__'"都不会成立的!

所以,下一行代码永远不会运行到!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中if __name__ == '__main__': 的解析 的相关文章

  • 当包含非 ASCII 字符时,无法使用 lambda S3 事件给出的密钥

    我有一个 Python lambda 脚本 可以在图像上传到 S3 时缩小图像 当上传的文件名包含非 ASCII 字符 在我的例子中是希伯来语 时 我无法获取该对象 禁止 就好像该文件不存在一样 这是我的 一些 代码 s3 client b
  • pexpect 和 ssh:如何在 su - root -c 之后格式化一串命令

    我正在尝试迭代服务器和密码列表来更改一组服务器上的 sshd 配置 以便我可以使用无密码 SSH 密钥通过 root 登录 运行命令 我可以在 bash 中轻松完成此操作 但我正在尝试学习 Python 并且 显然 希望放弃手动输入密码 这
  • AVAudioRecorder 未写出正确的 WAV 文件头

    我正在 iPhone 上开发一个项目 我使用 AVAudioRecorder 从设备麦克风录制音频 然后对录音进行操作 为了确保我正确地从文件中读取样本 我使用 python 的 wave 模块来查看它是否返回相同的样本 然而 当尝试打开
  • 根据列中的条件将 Pandas 数据框拆分为多个数据框

    为了为 ML 任务正确准备数据 我需要能够将原始数据帧拆分为多个较小的数据帧 我想要获取上面的所有行 包括 BOOL 列的值为 1 的行 对于每次出现的 1 即 n 个数据帧 其中 n 是 1 出现的次数 数据样本 df pd DataFr
  • 如何从 python 发布到 hipchat

    我有一些 python 工具 我想将它们的更新发送到 hipchat 房间 我在其他地方使用 shell 脚本执行此操作 因此我知道它在我们的环境中有效 但我似乎无法将令牌推送到 hipchat API 一定是简单的事情 首先 这会正确进行
  • 在Python中解析制表符分隔的文件

    我正在尝试在 Python 中解析一个制表符分隔的文件 其中与行开头分开的 k 个制表符的数字应该放入第 k 个数组中 除了逐行读取并执行简单解决方案将执行的所有明显处理之外 是否有内置函数可以执行此操作 或者有更好的方法 您可以使用the
  • Python:安装 numpy 时出现损坏的工具链错误

    我正在使用 Python 2 7 3 并尝试在 Windows 计算机上安装 numpy 包 但收到运行时错误 提示 工具链损坏 无法链接到简单的 C 程序 我读了解决方案here https stackoverflow com quest
  • 将 python 嵌入到我的应用程序中时出现内存泄漏

    以下程序与 python 2 7 13 链接并在 Windows 10 上运行时缓慢但稳定地泄漏内存 include
  • Python 中快速、小型且重复的矩阵乘法

    我正在寻找一种使用 Python Cython Numpy 快速将许多 4x4 矩阵相乘的方法 任何人都可以给出任何建议吗 为了展示我当前的尝试 我有一个需要计算的算法 A 1 A 2 A 3 A N 哪里每个 A i A j Python
  • 如何设置 1dCNN+LSTM 网络(Keras)的输入形状?

    我有以下想法要实施 Input gt CNN gt LSTM gt Dense gt Output 输入有 100 个时间步长 每个步长有一个 64 维特征向量 A Conv1D层将在每个时间步提取特征 CNN 层包含 64 个滤波器 每个
  • Pyside QPushButton 和 matplotlib 的连接

    我正在尝试使用 matplotlib 开发一个非常简单的 pyside Qt 程序 我希望按下按钮时绘制图表 到目前为止 我可以在构造函数上绘制一些东西 但无法将 Pyside 事件与 matplotlib 连接起来 有没有办法做到这一点
  • 从 keras 模型中将特征提取到数据集中

    我使用以下代码 由here https github com keras team keras blob master examples mnist cnn py 运行 CNN 来训练 MNIST 图像 from future import
  • 如何重定向到外部404页面Python Flask

    我正在尝试将 404 重定向到外部 URL 如下所示 app route 404 def http error handler error return flask redirect http www exemple com 404 404
  • 使用 numpy 数组时出现内存错误 Python

    我原来的list 函数有超过 200 万行代码 当我运行计算 的代码时出现内存错误 有什么办法可以绕过它吗 这list 下面是实际 numpy 数组的一部分 熊猫数据 import pandas as pd import math impo
  • 在 Mac 上安装 python igraph

    我执行了brew install homebrew science igraph当我执行时sudo pip3 install python igraph 我收到以下错误 Cannot find the C core of igraph on
  • 如何使用基于令牌的访问获取虚拟机的 GCP 配额限制

    我想使用基于令牌的访问来获取 GCP VM 限制 下面是我的Python代码 from googleapiclient import discovery from oauth2client import AccessTokenCredent
  • 维基百科与 Python

    我有这个非常简单的 python 代码来读取 wikipedia api 的 xml import urllib from xml dom import minidom usock urllib urlopen http en wikipe
  • 无法将项目追加到多处理共享列表

    我正在使用多重处理来为我的应用程序创建子流程 我还在进程和子进程之间共享一个字典 我的代码示例 主要流程 from multiprocessing import Process Manager manager Manager shared
  • Keras 导入错误 Nadam

    我在尝试导入 Keras 模块 Nadam 时遇到导入错误 gt gt gt from keras optimizers import Nadam Traceback most recent call last File
  • 与 IPython 内核分离而不终止它

    有人可以告诉我如何在不终止 IPython 内核的情况下分离它吗 我在文档中看到quit 有一个参数keep kernel 但不幸的是quit keep kernel True 行不通的 如果您通过 IPython 控制台客户端连接到内核并

随机推荐

  • RabbitMQ之Work Queues模式

    RabbitMQ之Work Queues模式 本下面的文字代码原来自官网 附上链接 RabbitMq 之 Work Queues 看完这篇文章对你绝对有好处 好处一 你可以了解透 Work Queues模式 本文章内容98 以上都是来自官网
  • win服务器启动springboot项目,Spring boot项目部署为windows服务

    用途 使用 Spring Boot 开发的 Web 项目 打包生成了一个 jar 包 部署在 Windows 服务器中 设置为开机启动spring boot 生成的 jar 包 直接用 java jar 运行 但是前提是需要登陆用户 并且注
  • linux经典书籍推荐

    对于linux来说 它的用处很多 它可以是java的基础 又可以构建系统 很多人对它越来越感兴趣 下面分享一些linux经典书籍供大家参考 入门篇 LINUX权威指南 书不错 写的很全面也比较广 涉及的不深 做为入门书籍不错 可以比较全面的
  • ConstraintLayout 属性详解 和Chain的使用

    http blog csdn net zxt0601 article details 72736802
  • Nacos手动注册,Nacos内网IP的解决办法,自动获取外网注册服务

    Nacos内网IP的解决办法 自动获取外网注册服务 废话不说 直接上代码 pom文件
  • Appstore审核被拒-[4. DESIGN: PREAMBLE]

    Appstore审核被拒原文如下 原因是设置里有一个版本信息可以响应点击事件进入一个版本详情页 苹果要求版本更新必须使用iOS版本更新内置更新机制 4 DESIGN PREAMBLE Design Preamble The version
  • 【华为OD机试真题 python】二进制差异数【2022 Q4

    前言 华为OD笔试真题 python 本专栏包含华为OD机试真题 会实时更新收纳网友反馈 为大家更新最新的华为德科OD机试试题 为大家提供学习和练手的题库 订阅本专栏后可私信进交流群哦 题目仅供参考 千万不要照抄 题目描述 二进制差异数 对
  • CK草稿本

    调用流程 获得op ptr ck有个工厂模式 const auto op ptrs ck tensor operation device instance DeviceOperationInstanceFactory
  • leetcode无重复字符的最长字串 python实现

    无重复字符的最长字串是一道字符串处理算法的题目 在日常编程中 处理字符串是常见任务 用Python来实现leetcode这道算法题 该题目会涉及到一个概念 滑动窗口 一 题目描述 给定一个字符串 请你找出其中不含有重复字符的 最长子串 的长
  • mac系统vim无法退出insert模式(ESC无效)

    表现 Vim 进入 Insert 模式以后 按 ESC 无法退出 解决方案 按 ctrl c
  • 电感与磁珠

    电感最重要的公式 它说明了电感的很多特性 比如 电感电流不能突变 电感的储能大小 电感的电流与电压的相位关系 还有电感的阻抗为什么是jwL 电感电流不能突变 电感电流为什么不能突变呢 来看这个公式 U等于负的L乘以di比dt Di比dt是指
  • linux上开发应用程序_如何在Linux上安装软件应用程序

    linux上开发应用程序 如何在Linux上安装应用程序 与许多操作系统一样 该问题不仅有一个答案 应用程序可以来自许多来源 几乎无法计数 每个开发团队都可以以自己认为最佳的方式交付软件 知道如何安装给出的内容是成为操作系统的真正超级用户的
  • asn1编码格式的解析过程

    本文以x509的解析为例说明asn1的编码格式的解析逻辑 x509证书的解析实际上是asn1格式的解析 这里着重说的是asn1的ber编码的解析 总的来讲 asn1格式的解析过程有三个重要的元素 一个是asn1数据本身 一个是openssl
  • vue中引用cdn中的js文件或者json的用法

    1 现在有一个js文件要放在cdn上 这个js文件的内容如下 var testArr a 1 2 我要在vue项目中使用这个变量 因为这个变量可能是经常变化的 但是不能变化一次就打包一次 所以将他放在cdn上 有使用的话直接改变cdn上的j
  • vscode运行C语言踩坑记

    前言 本文对Vscode运行C语言代码报错进行整理 重点是头文件路径正确仍然报错找不到路径的解决办法 需要注意 VScode本身不具有编译运行代码能力 所以需要先安装对应的编译环境并下载插件 已安装编译器软件的可以参考如下连接进行配置 Vi
  • Kali之Web渗透-扫描工具-Burpsuite

    在学习Burpsuit之前 我先说一下什么是代理 就是代理网络用户去取得网络信息 作为一个在浏览器和目标应用程序之间的中间人 允许你拦截 查看 修改在两个方向上的原始数据流 形象地说 它是网络信息的中转站 一般情况下 我们使用浏览器直接去连
  • 无需破解,Python这个神器帮你免费获取资源,赶紧收藏!

    球鞋那么难抢 有没有抢限量版球鞋的神器 每当限量版球鞋开售的时候 几十万人一拥而入 能抽中的却是少数 朋友圈刷到别人中标的消息 心里又羡慕又有点酸 今年DUNK推出的时候 我表弟竟然中了两双 他跟女朋友一人一双 这运气太好了吧 他跟我炫耀的
  • 拯救者R7000P(R7 4800H + RTX 2060)安装ubuntu18.04时黑屏,无法进入安装界面

    问题描述 插入启动盘选择u盘启动后能进入GNU GRUB 选择Try ubunut或Install ubuntu后黑屏或报错 无法正常安装 常见于搭载nvidia系列显卡且无核显或集显的电脑 也发生在有核显但为AMD处理器的电脑上 原因分析
  • stata-描述性统计分析和回归指令

    文章目录 1 简单描述性统计分析 2 bootstrap统计量 有置信区间 前文中提到如何将xls格式的数据读入stata并且将其转换为dta格式的数据 向stata中加载数据并且转换为dta格式之后读取 1 简单描述性统计分析 在读入数据
  • python中if __name__ == '__main__': 的解析

    python中if name main 的解析 当你打开一个 py文件时 经常会在代码的最下面看到if name main 现在就来介 绍一下它的作用 模块是对象 并且所有的模块都有一个内置属性 name 一个模块的 name 的值取决于您