Python 中的下划线(_)

发布时间:2022-07-24

在本文中,我们将讨论单下划线(_)和双下划线(__)的作用。 当用户用 Python 编写代码时,在某些情况下,他们使用单下划线(_),在某些情况下,他们使用双下划线(__)。 以下是用户使用下划线的一些情况。

  • 如果用户想在解释器中存储最后一个表达式的值。
  • 如果用户想在代码中声明变量或函数。
  • 如果用户想分隔数字横向值的位数。
  • 因为忽略了一些价值观。
  • 下划线还用作“本地化(l10n)”和“国际化(i18n)”功能。 让我们看看这些案例的一些例子。

在解释器中使用

Python 的解释器会将最后一个表达式值存储在“_”中。 示例:

print(47)
47
print(_)
47
print(_ + 13)
60
print(_)
60
print(_ - 10)
50

因为忽略了价值观 这里,我们将使用下划线(_)来忽略这些值。 示例:

A, B, C, D, _, E, F, G = (10, 20, 30, 40, 50, 60, 70, 80)

在这里,

    A = 10
    B = 20
    C = 30
    D = 40
    E = 60
    F = 70
    G = 80

下划线(_)用于忽略值 50。

使用下划线(_)声明变量和函数

Python 语言不支持私有变量或函数,所以用户不能强制私有变量和函数,但是可以直接从其他模块调用它们。 示例:

using_single_underscore_

用户可以使用尾部下划线(_)来避免与 Python 关键字和内置的冲突。 示例:

__double_leading_underscore

上面的双下划线(__)用于避免名称之间与属性名称的冲突。 如果用户在类中写入函数名“_display”,则该名称将在“_class name_display”表单中修改。 示例:

__double_leading_and_trailing_underscore__

在某些情况下,用户将此表单用作 __init__

用于分隔数字横向值的数字

下划线(_)可用于分隔数字横向值的数字 示例:

decoder_base = 5_000_000
print (decoder_base)

输出:

5000000

作为本地化(l10n)和国际(i18n)功能

这只是一个原则,并没有任何句法功能。下划线(_)用于将 i18n/l10n 绑定到带下划线的变量。它的概念取自 C 约定。

Python 变量的下划线前缀是什么意思?

类中具有前导下划线(_)的名称用于向其他用户指示该属性或函数在程序中是私有的。 建议用户对半私有变量使用单下划线(_),对完全私有变量使用双下划线(__)。 在下面的示例中,我们将显示单下划线(_)和双下划线(__)前缀之间的区别。 示例:

class UserClass():
     def __init__(self):
             self.__fully_private = "JavaTpoint"
             self.__fully_private = "to"
             self._semi_private = "Hello"
             self._semi_private = "Say"
mc = UserClass()
print(mc._semi_private)
print(mc.__fully_private)

输出:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-10-4f3b78146b9f> in <module>
      7 mc = UserClass()
      8 print(mc._semi_private)
----> 9 print(mc.__fully_private)
AttributeError: 'UserClass' object has no attribute '__fully_private'

在上面的代码中,用户试图访问完全私有的变量,在输出中,他们会得到错误消息 UserClass 没有任何名为“__fully_private”的属性。

结论

在本文中,我们通过不同的例子讨论了单下划线(_)和双下划线(__)在 Python 中的使用。