python单下划线和双下线的区别
程序员文章站
2022-03-09 09:33:54
...
python单下划线和双下划线的区别
文章目录:
一、简单说明
在学习Python的时候,会不理解为什么在方法(method)前面会加好几个下划线,有时甚至两边都会加。在C++的类中会定义中一些方法或属性会被定义成public、protected、private,而在Python中不是通过关键字进行定义,而是通过下划线和双下划线进行定义,同样实现具有 private 和 protected 类似的访问权限作用,下面我们具体分析。
Python主要存在四种命名:
(1)object #公用方法
(2)__object__ #内建方法,用户不要这样定义
(3)__object #全私有,全保护(private)
(4)_object #半保护(protected)
核心风格:避免用下划线作为变量名的开始。
因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,如类的gouzao
二、举例说明
1、单下划线开头开头(protected变量)
单下划线
开头的变量
“单下划线”开始的变量叫做保护变量
,意思是只有类对象和子类对象
能访问到这些变量
2、双下划线开头(private变量)
双下划线
开头的变量
“双下划线”开始的变量叫做私有变量
,意思是只有类本身
能够访问达到这些变量,连子类对象也不能访问。
但是类的对象或者类的子对象想访问这些私有变量也是可以的,需要改变访问的的方式(但是一般不主张)
对象访问私有方法或属性:
对象名._类名__PrivateMethod()
class Foo():
def __init__():
...
def public_method():
print 'This is public method'
def __fullprivate_method():
print 'This is fullprivate_method'
def _halfprivate_method():
print 'This is halfprivate_method'
f = Foo()
f.public_method() # OK
f.__fullprivate_method() # Error occur
f._halfprivate_method() # OK
f._Foo__fullprivate_method() # OK
上一篇: css实现下划线的最佳实践及其他方式
下一篇: python中的下划线"_"讲解