📌  相关文章
📜  Python中下划线'_'的作用(1)

📅  最后修改于: 2023-12-03 15:19:23.055000             🧑  作者: Mango

Python中下划线'_'的作用

在Python中,下划线(_)有多种不同的作用,本文将介绍其常见的用法。

用作占位符

在交互式环境或某些代码片段中,下划线常用作占位符,表示上一个输出或表达式的结果。

例如,执行以下代码:

>>> 1 + 2
3
>>> print(_)
3

上面的代码中,第一行计算了1加2的结果,第二行使用了下划线作为占位符,表示上一个表达式的结果(本例中为3)。

用作私有变量的前缀

在Python中,下划线也可用作变量名的前缀,表示该变量为私有变量,不应该被外部访问。

例如:

class MyClass:
    def __init__(self):
        self._my_private_var = 42

    def get_my_private_var(self):
        return self._my_private_var

上面的代码中,私有变量_my_private_var以下划线开头,这表示该变量不应该被外部直接访问。但是,这并不是真正的私有(Python并没有提供真正的私有变量),外部依然可以访问该变量,只不过须使用_加上变量名的方式来访问(如上面代码中的get_my_private_var方法)。

用作国际化函数的翻译标记

在Python的国际化(i18n)函数中,下划线也有重要用途。大多数Python国际化函数都使用下划线作为翻译标记函数的名字(通常为_()),如下所示:

def _(msg):
    # 翻译 msg 并返回
    ...

在国际化函数中使用下划线的原因是,此函数名短小且易于输入,而且不容易引起与其他函数名冲突。

用作命名约定

在Python中,下划线还有一个命名约定,用于表示某些特殊含义的变量或属性。例如:

  • _foo: 表示该变量或属性为非公共(但不是真正的私有)的内容;
  • __foo: 表示该变量或属性为“名称修饰符(name mangling)”所使用的名称;
  • __foo__: 通常用来表示特殊方法或属性。

需要注意的是,这些命名约定并不是Python强制执行的语言特性,而只是一种普遍接受的编程习惯。

结论

在Python中,下划线具有多种不同的作用,包括作为占位符、私有变量前缀、国际化函数的翻译标记,以及各种命名约定的使用。了解这些用法能够帮助程序员更好地编写Python代码,并且遵循Python社区的规范和惯例。