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]