python的name属性_Python中__name__属性的妙用

2023-10-31

在Python中,每一个module文件都有一个built-in属性:__name__,这个__name__有如下特点:

1 如果这个module文件是被别的文件导入的,那么,该__name__属性的值就是这个module文件的名字;

2 如果这个module文件是被当成程序来执行,那么,该__name__属性的值就是"__main__"

因此,在很多Python代码中,__name__属性被用来区分上述module文件被使用的两种方式。一种常用的做法是将module文件自己的单测代码,放到__name__属性为"__main__"的情形中去。

比如,有test.py文件:

deftester():print("It's Christmas in Heaven...")if __name__ == '__main__':

tester()#调用单测代码

如果这个文件是被其他文件导入的,那么,tester函数不会执行:

>>>import test #tester函数不会执行,除非显示调用

>>>test.tester()

It's Chrismas in Heaven...

但是如果test.py被当成程序执行,那么,tester函数会执行:

python test.py

It's Chrisma in Heaven...

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

python的name属性_Python中__name__属性的妙用 的相关文章

  • java:无法从静态上下文中引用非静态方法

    编辑以下代码 public class t public int i public void fun public static void main String args i 3 fun 编译 javac t java 得到以下报错 原因
  • c++svd算法_2020DCIC智能算法赛智慧海洋建设TOP1方案

    大家好 我是来自团队Pursuing the Past Youth的Ethan 天池ID是GrandRookie 和队友青禹小生 wbbhcb Chauncy YAO经过2个多月的 征途 最终在本届智能算法赛部分拿到了线上Top1的成绩 下
  • 蓝桥杯第十届青少年Python组省赛试题

    ns 1 3 5 8 cnt 0 for a in ns for b in ns for c in ns if a b and a c and b c print a 100 b 10 c cnt 1 print cnt for i in
  • SpringSecurity详解

    一 Spring Security简介 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架 Spring Security致力于为Java应用程序提供身份验证和授权的能力 像所有Spring项目一样 Sprin
  • Lora无线终端工作原理及优缺点

    LoRa 数据传输终端是一种基于LoRa 扩频技术的无线数据传输终端 利用 LoRa 网络为用户提供无线数据传输功能 该产品采用高性能的工业级 LoRa 方案 以嵌入式实时操作系统为软件支撑平台 同时提供 RS232 和 RS485 或 R
  • mipsel-openwrt-linux交叉编译libwebsockets

    mipsel openwrt linux交叉编译libwebsockets mipsel openwrt linux交叉编译libwebsockets 1 下载libwebsockets 2 准备条件 3 编译安装libwebsockets
  • 数据库——实体联系模型

    文章目录 1 实体 2 属性 3 联系 4 实体 联系图 5 弱实体集 1 实体 1 实体 客观存在并且可以相互区分的任何事物 可以是实际对象 也可以是抽象概念 2 属性 实体所代表的事物具有的某种特性 每个实体都可以用一组属性来刻画 例如
  • 思维导图怎么变成ppt?4个思维导图一键生成ppt的方法

    做好的思维导图如何变成一份ppt 本文罗列了4个可行方法 一起来看看吧 一 直接复制粘贴 这是最简单的方法 虽然这样可能会花费一些时间 但可以确保内容排版和布局与你想要的一致 当然 我们大可使用更高效的方法 二 导出为图片格式 大多数思维导
  • 矩阵相关定义性质全总结

    矩阵相关定义性质全总结 0 前言 矩阵是线性代数中的核心内容 所以我写这篇文章对矩阵 研究生以下阶段 进行一个完整的叙述 虽然是主要说矩阵 但是我也会将行列式 向量 线性方程组三个方面也包含在内 不过是概述的形式 具体的叙述会另外展开写 能
  • C++沉思录读书笔记1.如何定义一个完整的类

    C 沉思录 Ruminations On C 读书笔记1 如何定义一个完整的类 作者 2006 4 27 12 19 C 哲学 只为用到的东西付出代价 定义一个类时必须搞清楚的几个问题 需要构造函数吗 如果答案为 no 那么很可能你需要定义
  • 关于转义字符&

    1 情况是这样的 就是前段传的xml参数里存在 这种特殊字符 所以前端需要转义后再传给后端 也就是 转义为 后传给后端 但是后端接收但这个参数时 会拼接url 就像下面这样的 http www xx com path api gender
  • 【Colab】基本操作【LeNet】【MNIST】训练测试

    文章目录 1 介绍 2 查看基本配置 2 1查看pytorch版本 2 2查看是否可以使用cuda 2 3查看显卡配置 3 挂载 31 挂载谷歌云盘 3 2更改运行目录 4 训练 5 Reference Colab 官网初始界面 1 介绍
  • python函数用法之numpy.mgrid

    参考链接 python笔记 numpy中mgrid的用法 布衣小张 CSDN博客 mgrid numpy中的mgrid函数 KangLongWang的博客 CSDN博客 mgrid函数 mgrid函数返回多维结构 np mgrid 第1维
  • ISP图像处理流程

    文章目录 前言 ISP图像处理流程 总结 参考 前言 因工作需要 今天看了ISP图像处理的基本流程 为了检验自己的理解情况 这里根据自己的理解写下这篇文章 如有错误 敬请原谅 ISP图像处理流程 ISP Image Sensor Proce
  • 后台管理系统项目

    1 项目名称 后台管理 2 技术栈 vue全家桶 element ui axios less eachers 3 项目亮点 性能优化 百万级项目 新旧系统更迭 权限把控 项目开发流程 1 安装vue脚手架 2 vue create 项目名称
  • MySQL-索引

    一 介绍 索引是数据库对象之一 用于提高字段检索效率 使用者只需要对哪个表中哪些字段建立索引即可 其余什么都不做 数据库会自行处理 索引提供指向存储在表的指定列中的数据值的指针 如同图书的目录 能够加快表的查询速度 但同时也增加了插入 更新
  • SpringBoot 二维码生成

    来源 https www cnblogs com songweipeng p 16623793 html 一 基于Google开发工具包ZXing生成二维码
  • 算法与数据结构之带头结点的单链表

    单链表优缺点 链表是非随机存取的存储结构 和顺序表相比 链表存储结构在实现插入 删除的操作时 不需要移动大量数据元素 但不容易实现随机存取线性表的第 i 个数据元素的操作 所以 链表适用于经常需要进行插入和删除操作的线性表 如飞机航班的乘客
  • 【机器学习 - 5】:多元线性回归

    文章目录 多元线性回归 多元线性回归公式推导 举例 波士顿房价 取特征值RM为例 取所有特证为例 多元线性回归 多元线性回归方程 特征值为两个或两个以上 以下是多元线性回归的模型 我们需要求出theta 使得真实值和预测值的差值最小 多元线

随机推荐

  • 前端系列19集-vue3引入高德地图,响应式,自适应

    npm i amap amap jsapi loader save import AMapLoader from amap amap jsapi loader 使用加载器加载JSAPI 可以避免异步加载 重复加载等常见错误加载错误 为地图注
  • 四种推荐系统原理介绍(基于内容过滤/协同过滤/关联规则/序列模式)

    在推荐系统中常用的技术可大致分为四类 基于内容的过滤 协同过滤 基于规则的方法和混合方法 一 基于内容过滤 基于内容过滤推荐系统思路如下 1 通过在抓取每个商品的一系列特征来构建商品档案 2 通过用户购买的商品特征来构建基于内容的用户档案
  • Jmeter怎么添加token?

    不需要token的场景 随便进入一个购物app 都是可以看里面的商品的 这时不需要token 但是当你要买它的时候就需要你登录自己的账号 登录状态需要token 什么时候需要用到token 比如 京东商城里面 我需要查看我的消息列表 这时候
  • Jenkins自动化构建网站与流水线构建Maven项目实战

    1 gitlab Jenkins自动化构建网站实战 基本架构 通过gitlab jenkins构建一个常规网站的原理图 Jenkins插件和环境配置 配置全局变量 要配置的全局变量有Git JDK和Maven 指定JDK的路径 设置Git可
  • vue2.0 vue3.0 input组件封装

    vue2
  • tar -xf node-v12.16.1-linux-armv7l.tar.xz 错误

    1 tar解压tar xz能会出错 因为你的系统里没有对应的解压工具 你安装上xz和tar对应工具包就行 apt get install xz utils 2 chmod无法访问 没有那个文件或目录 方案之一 修改 etc selinux
  • UEFI模式安装下Ubuntu 18.04 系统分区参考(win10+Ubuntu双系统)

    由于这几天给自己的电脑成功装了双系统 所以在此记录下当时在装Ubuntu系统中最难懂的部分 系统分区 以供大家以及自己今后参考 具体安装步骤我就不一一细说了 可以参考其他博主的文章 小米笔记本安装Win10 Ubuntu16 04 LTS
  • 金山卫士开源软件之旅(二) 简单教程:如何创建一个基于金山卫士界面库的工程

    完整解决方案代码压缩包 test full zip 267 59 KB 参考 http bbs code ijinshan com thread 1391 1 1 html 为了让更多的朋友能够让自己的程序使用上金山卫士的界面库 现将创建界
  • oracle case when的使用方法

    大家都知道Case when的用法 一旦满足了某一个WHEN 则这一条数据就会退出CASE WHEN 而不再考虑其他CASE 文章来详细的介绍了case when的用法并举例说明了 Case when 的用法 简单Case函数 简单CASE
  • C++ 接口(抽象类)

    C 接口是使用抽象类来实现的 接口描述了类的行为和功能 而不需要完成类的特定实现 且抽象类与数据抽象互不混淆 如果类中至少有一个函数被声明为纯虚函数 则这个类就是抽象类 数据抽象则是一个把实现细节与相关的接口分离开的概念 如果类中至少有一个
  • Ubuntu18.04安装ROS教程bug解决办法

    Ubuntu18 04安装ROS教程bug解决办法 写在前面 一 配置源文件bug 二 rosdep update 报错 三 安装ROS中出现bash opt ros melodic setup bash 没有那个文件或目录或者bash o
  • linux设置时间为24小时制,设置时区

    1 查看系统时间 root localhost localdomain date Thu Feb 4 14 24 18 CST 2010 时区是CST 为了彻底弄明白GMT UTC CST 我查阅了下网上的相关教程 进行整理 一般来说 UT
  • Android 应用内部存储之应用文件缓存

    前言 Android 应用内部存储之应用文件缓存的重点在最后总结 如果想快速学习 直接查看最后总结 在向手机上保存数据 一般是把数据保存在sdcard中的 大部分应用是直接在sdcard的根目录下创建一个文件夹 然后把数据保存在该文件夹中
  • 一个TCP长连接设备管理后台工程(四)---jtt808协议解析

    协议解析 从前面内容我们可以发现 808协议是一个很典型的协议格式 固定字段 变长字段 其中固定字段用来检测一个帧格式的完整性和有效性 所以一般会包含一下内容 帧头 变长字段对应的长度 校验 由于这一段的数据格式固定 目的单一 所以处理起来
  • vue/react/node项目通过eslint检查语法规范

    首先 我们打开终端 全局安装依赖 npm install g eslint 然后 以管理员身份运行项目终端 输入 eslint init 然后 这里 在初始化时会问我们想如何使用它 分别对应 仅检查语法 检查语法并发现问题 检查语法 发现问
  • 面试官:为啥索引可以让查询变快?

    您好 我是路人 更多优质文章见个人博客 http itsoku com 概述 人类存储信息的发展历程大致经历如下 由于是个人凭着自己理解总结的 因此可能不一定精确 但是毋庸置疑的是 在当代 各大公司机构部门的数据都是维护在数据库当中的 数据
  • 如何在Kubernetes中安装metrics-server以获取Node节点、Pod容器资源监控指标?

    关注 WeiyiGeek 公众号 设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 本章目录 Kubernetes中安装metrics server以获取客户端资源监控指标 原文地址 https blog weiyige
  • 系统分析师笔记

    信息系统生命周期 1 立项阶段 企业全局 形成概念 需求分析 2 开发阶段 系统规划 系统分析 系统设计 系统实施 系统验收 3 运维阶段 通过验收和移交之后 4 消亡阶段 更新改造 功能扩展 报废重建 1 系统规划 初步调查 分析系统目标
  • bash设置成vim命令模式

    如果你习惯在vim下编辑文件或者写代码 那么对Vim命令肯定很熟悉 自然希望在bash输入命令的时候也能够使用这些命令 使得shell命令输入也便利起来 默认情况下 bash是Emacs模式的 在 bashrc里面添加一个设置 set o
  • python的name属性_Python中__name__属性的妙用

    在Python中 每一个module文件都有一个built in属性 name 这个 name 有如下特点 1 如果这个module文件是被别的文件导入的 那么 该 name 属性的值就是这个module文件的名字 2 如果这个module