Python小技巧:单下划线 ‘_‘

按照约定,单个独立下划线有时被用作变量名,这表示该变量是临时的、不重要或者只是一个辅助的存在。在编程中,这种命名方式有助于区分那些一次性使用的变量,避免它们与长期存在的变量混淆。同时,这也是遵循良好编程习惯的一种体现。

举例子,这是一个使用Python的示例循环,其中我们不需要访问运行中的索引,那么我们可以用下划线_来表示这个临时值:

for _ in range(10):  # 使用下划线代替索引print('Hello, world!')

在这个例子中,我们使用了单个下划线_来表示索引。当我们需要创建一个临时变量时,Python并不会真的为这个_后面的内容分配一个变量名,而是直接用下划线来表示。这样做的好处是避免命名冲突,并且由于这些临时值的生命周期很短(仅在循环体内),所以使用下划线来表示它们不会引起代码维护困难。在Python中,确实可以使用单个下划线_来表示"我不关心"(don’t care)的变量,用于忽略特定值。这种用法遵循了命名约定,并不会触发Python解析器的任何特殊行为。它本质上是一个有效的变量名,但其含义在于提示读者,对于这个变量,你不需要关注它的具体数值。

下面的代码示例中,我要将包含颜色和里程字段的整个元组中的值解包到单独的变量中。然而,由于我只对颜色和里程这两个特定字段感兴趣,我们可以使用_(下划线)作为占位符变量。这样做的好处是,Python会忽略_对应的内容,因为我们只是需要它来“占据”位置。

示例代码如下:

>>> car = ('red', 'auto', 12, 3812.4)
>>> color, _, _, mileage = car
>>> color
'red'
>>> mileage
3812.4

在Python的交互式命令行(REPL,Read-Eval-Print Loop)中,_确实是一个特殊变量。它代表了最近一次解析执行后得到的结果。

当你在一个交互式会话中进行计算,然后想要访问之前某个计算的结果时,_变量就派上了用场。比如:

PyDev console: starting.
Python 3.12.1 (v3.12.1:2305ca5144, Dec  7 2023, 17:23:38) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin
>>> 20 + 3
23
>>> _
23
>>> print(_)
23

在Python中,如果你正在构建对象并需要动态交互,而不想先给它们命名,那么_变量就非常有用。

例如,你可以创建一个类,并在方法中使用_来临时存储对象的属性,然后进行交互:

>>> list()
[]
>>> _.append(1)
>>> _.append(2)
>>> _.append(3)
>>> _
[1, 2, 3]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/10666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nacos命名空间的配置

给微服务配置namespace 给微服务配置namespace只能通过修改配置来实现。 例如,修改order-service的application.yml文件: spring:cloud:nacos:server-addr: localhost:8848discovery:cluster-name: HZnamespace: 492a7d5d-237b-46a1-a99a-fa8e98e4b0f…

NodeMCU ESP8266 获取I2C从机地址

文章目录 前言关于地址位读写位程序总结前言 I2C总线上可以挂载很多的从设备,每个设备都会有一个自己唯一的一个地址; 关于地址位 通常地址位占7位数据,主设备如果需要向从机发送/接收数据,首先要发送对应从机的地址,然后会匹配总线上挂载的从机的地址; 读写位 该位…

MySQL Join原理分析(缓冲块嵌套与索引嵌套循环)

场景假设 A表(1000条数据)left join B表(1000条数据)。 嵌套循环(Nested-Loop Join) 极简概括:顾名思义多层循环叠加,由于MySQL条数数量有限,所用for循环而不用while&…

windows编译opencv4.9

opencv很多人在windows上编译感觉特别麻烦,没有linux下方便,设定以下三点,我们几乎会无障碍。 1 安装cuda,cudnn 安装好cuda,cudnn,把cudnn的头文件,库等等拷贝到cuda的安装目录下面&#xff…

实现红黑树

目录 红黑树的概念 红黑树的节点结构定义 红黑树的插入 红黑树的验证 实现红黑树完整代码 红黑树的概念 红黑树 ,是一种 二叉搜索树 ,但 在每个结点上增加一个存储位表示结点的颜色,可以是 Red 或 Black 。 通过对 任何一条从根到叶子的…

1-2亿条数据需要缓存,如何合理设计存储

单机是不可能的,肯定是分布式存储 数据怎么落? 一般业界有三种解决方案 哈希取余分区 一致性哈希算法分区 哈希槽分区(大厂专用,都在用)最终的选择

git 命令之 - revert

简介 如果你想保留之前的推送记录,同时将回退的过程作为一个新的提交推送到远程仓库。 你可以使用 git revert 命令。 这个命令会创建一个新的提交,它是上一个提交的相反操作,从而撤销之前的更改,而不是重写项目的历史。 以下…

信息检索(37):Query-as-context Pre-training for Dense Passage Retrieval

Query-as-context Pre-training for Dense Passage Retrieval 标题摘要1 引言2 初步:上下文监督预训练2.1 coCondenser2.2 CoT-MAE 3 查询即上下文预训练3.1 预训练3.2 微调 4 实验4.1 预训练4.2 微调4.3 基线4.4 主要结果4.5 域外评估 5 分析5.1 生成的查询数量的影…

面向电商家居行业3D室内场景合成中的空间感知

本文主要介绍了3D场景合成技术在电商领域,尤其是家居家装行业的应用。它解释了如何使用3D场景合成创建逼真的室内设计,让消费者能够交互式地查看和体验产品,提高购物的趣味性和效率。文章提到了两种主要的3D室内场景生成算法:传统…

RN开发搬砖经验之—分析与定位图片文件被清空的原因

如题 最近工作上处理的一个BUG,先讲下结论/原因,然后再分享该主题相关的东西 结论是:copy图片文件时,源路径与目标路径相同—输入输出流同时操作同一个文件,导致文件清空了! copy文件的主要源码如下&#…

OFDM802.11a的FPGA实现(十二)使用FFT IP核添加循环前缀

原文链接(相关文章合集):OFDM 802.11a的xilinx FPGA实现 目录 1.前言2.循环前缀3.硬件实现4.ModelSim仿真 1.前言 为了能够消除传输过程当中的符号间干扰,在IFFT处理完毕之后还要加上循环前缀。 2.循环前缀 实际通信信道中,由于接…

【QEMU系统分析之实例篇(二十九)】

系列文章目录 第二十九章 QEMU系统仿真的机器创建分析实例 文章目录 系列文章目录第二十九章 QEMU系统仿真的机器创建分析实例 前言一、QEMU是什么?二、QEMU系统仿真的机器创建分析实例1.系统仿真的命令行参数2. 将当前机器配置导出到文件qmp_x_exit_preconfig()qe…

深度学习设计模式之单例模式

一、单例模式简介 一个类只能有一个实例,提供该实例的全局访问点; 二、单例模式实现步骤 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返…

【OpenGauss源码学习 —— (ALTER TABLE(ExecRewriteCStoreTable))】

ALTER TABLE(ExecRewriteCStoreTable) 概述ExecRewriteCStoreTable 函数ATCStoreRewriteTable 函数ATCStoreGetRewriteAttrs 函数ChangeTableSpaceForDeltaRelation 函数ATOnlyCheckCStoreTable 函数 声明:本文的部分内容参考了他人的文章。在…

JavaScript与Nest.js:打造高性能的服务器端应用

JavaScript与Nest.js:打造高性能的服务器端应用 在现代Web开发的广阔天地里,JavaScript已经不再局限于浏览器的疆域,而是凭借Node.js的强大力量,向服务器端领域大步迈进。Nest.js,一个基于Node.js的渐进式框架&#x…

【计算机网络】物理层 通信基础、奈氏准则、香农公式 习题2

下列说法中正确的是( )。 A. 信道与通信电路类似,一条可通信的电路往往包含一个信道 B.调制是指把模拟数据转换为数字信号的过程 C. 信息传输速率是指通信信道上每秒传输的码元数 D.在数值上,波特率等于比特率与每符号所含的比特数的比值 信息传输速率&a…

65-CPLD电路设计(安路为例)

视频链接 CPLD电路设计(安路为例)01_哔哩哔哩_bilibili CPLD电路设计(以安路为例) 浅谈板级电源设计的三种方法_哔哩哔哩_bilibili 参考【浅谈板级电源设计的三种方法】 FPGA板级硬件实战S1~7课 实战Power2-电…

一次基类类型对象无法被传递问题的分析

看下面一段代码&#xff1a; // proj2.cpp #include <iostream> using namespace std; class CharShape { public:CharShape(char ch) : _ch(ch) {};virtual void Show() 0; protected:char _ch; // 组成图形的字符 }; class Triangle : public CharShape { public:Tr…

^_^填坑备忘^_^C#自动化编程实现STK+Exata对卫星互联网星座进行网络仿真

C#实际选择 STK11版本 or STK12版本的问题备注。 【C#自动化客户端调用STK时&#xff0c;实际选择 STK11版本 or STK12版本 的调试运行备注】 以下代码“更新并重新打包备份为”〔testSTKQualNetInterface备份08.1_★避坑★【种子卫星&#xff1a;天线直接安装在卫星上&#…

自贡在线教育系统报价,报班、网课还是自学怎么选择呢?

现在的教育模式已经不局限于传统的教育模式了&#xff0c;教育模式已经有很多模式&#xff0c;有各种辅导班、网课课程&#xff0c;很多人都在想报班好还是选网课&#xff0c;或者自学呢&#xff1f; 自学&#xff1a;成本最低&#xff0c;效率因人而异。只需要花上百把块钱买教…