在本文章中,我们将讨论单下划线(_)和双下划线(__)的作用。

当用户在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”,那么名称将以“_ClassName__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 = "javatiku"  
             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'的属性。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程