100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python单下划线和双下线的区别

python单下划线和双下线的区别

时间:2023-01-14 05:18:06

相关推荐

python单下划线和双下线的区别

python单下划线和双下划线的区别

文章目录:

一、简单说明二、举例说明1、单下划线开头开头(protected变量)2、双下划线开头(private变量)

一、简单说明

在学习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() # OKf.__fullprivate_method() # Error occurf._halfprivate_method() # OKf._Foo__fullprivate_method() # OK

参考:/w3cnote/python-5-underline.html # 对前双下划线的解释比较好

♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。