概述
python中的下划线主要分为如下几类:
- 前置单下划线,如_a,_variable,主要是用于将变量或方法定义为私有属性。这里的私有属性并非如java中的私有,而是一种约定俗成,想强行访问仍旧可以正常访问。
- 后置单下划线,如a_,val_,主要用于将变量区别,如变量名称和关键字冲突,后面加个下划线区别开来。
- 前置双下划线,如__val,类中带前置双下划线的变量或方法,都会触发python解释器的名称修饰,是不能直接通过该名称去访问到的,实现了一定程度上的隔离。
- 前后都有双下划线,如__init__,这类方法是python中的魔法方法,可以去重载。
- 单下划线本身如 _,主要用于无意义的变量名。
前置单下划线
将变量名,方法名指定为私有属性,但在外部仍旧可以访问到。这里只是一种约定俗成,对于私有方法或变量名,代表该对象/模块的这类方法或者变量不想暴露出来,应尽量避免访问私有属性或方法。
举例:
class A(object):
def __init__(self):
self._private=0
def _private_method(self):
print('AAAAA')
>>>a=A()
>>>a