【Python】单下划线(_)和双下线的约定意义

自由坦荡的智能 2025-03-29 03:02:42

在Python中,单下划线(_)和双下划线(__)有着不同的约定意义。

单下划线:

用于指示变量或函数是用于内部使用的,但这并不是强制性的。例如,在类中,以单下划线开头的属性或方法表明它们是意图在类内部使用的。在模块中,以单下划线开头的函数表示它们不应该被从其他地方导入。根据PEP-8风格指南,_single_leading_underscore表示弱“内部使用”指示符。

双下划线(名称改编):

在Python文档中,任何形式为__spam的标识符(至少两个前导下划线,最多一个后缀下划线)在文本上会被替换为_classname__spam,其中classname是当前类名,前导下划线被去除。这种改编是不考虑标识符的语法位置的,因此它可以用来定义类私有的实例变量和类变量、方法、存储在全局变量中的变量,甚至存储在实例中的变量。这种名称改编的目的主要是为了避免意外;它仍然允许有决心的人访问或修改被认为是私有的变量。

例如:

class MyClass(): def __init__(self): self.__superprivate = "Hello" self._semiprivate = ", world!"mc = MyClass()# 下面的代码会引发错误,因为属性名被改编了# print(mc.__superprivate)# 正确的访问方式是print(mc._MyClass__superprivate) # 输出: Helloprint(mc._semiprivate) # 输出: , world!

双下划线用于内置方法,如__init__、__bool__等。这些是Python的特殊方法,通常不用于普通属性或方法的命名。

0 阅读:0

自由坦荡的智能

简介:感谢大家的关注